如何设置SKScene的背景图片?
由于目前无法将SKScene
的颜色设置为clearColor
-(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { self.backgroundColor = [SKColor clearColor]; } return self; }
如在这里看到的: LINK
那么如何设置SKScene
的背景图像呢? 请尽可能具体,示例代码将是伟大的!
在场景中居中使用一个SKSpriteNode
:
-(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { // Replace @"Spaceship" with your background image: SKSpriteNode *sn = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"]; sn.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); sn.name = @"BACKGROUND"; [self addChild:sn]; } return self; }
这个解决scheme帮助我:
把你的代码调用/添加从viewDidLoad
到viewWillLayoutSubviews
的场景
- (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; // Configure the view. SKView * skView = (SKView *)self.view; skView.showsFPS = YES; skView.showsNodeCount = YES; // Create and configure the scene. SKScene * scene = [MyScene sceneWithSize:CGSizeMake(skView.bounds.size.width*2,skView.bounds.size.height*2)]; scene.scaleMode = SKSceneScaleModeAspectFill; // Present the scene. [skView presentScene:scene]; }
据我所知,原因是skView.bounds
是不同的,当视图即将被铺设和视图显示。 一般来说,我发现height
和width
是切换。
我从这里find了这个解决scheme: 背景图像大小Sprite Kit Game
这是一个更优雅的方式,以确保无论现在或将来有什么解决scheme,您的图像将成为您背景的大小。
如果要支持横幅广告,则必须将高度减less50或32个设备单位,然后将位置向上/向下移动25或16像素(纵向或横向)。 如果你想支持这两种风格,我还build议有一个不同的景观和肖像的形象,或者你必须开始信箱。
在现场…
SKSpriteNode* background = [SKSpriteNode spriteNodeWithImageNamed:@"myBackground"]; background.size = self.frame.size; background.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); [self addChild:background];