如何设置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帮助我:

把你的代码调用/添加从viewDidLoadviewWillLayoutSubviews的场景

 - (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是不同的,当视图即将被铺设和视图显示。 一般来说,我发现heightwidth是切换。

我从这里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];