SpriteKit 背景添加到场景外

SpriteKit background added outside of scene

我试图将背景定位在整个场景背景上,但由于某种原因它把它放在了屏幕之外。

这是我用的:

SKTexture *backgroundTexture = [self.atlas textureNamed:@"back"];
SKSpriteNode *background = [SKSpriteNode spriteNodeWithTexture:backgroundTexture size:self.view.frame.size];
background.position = (CGPoint) {CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame)};
[self addChild:background];

它是这样写的:

您需要将您的背景图像添加到 SKScene 视图中,从而确定来自自身的坐标。

SKSpriteNode *backgroundNode = [SKSpriteNode spriteNodeWithImageNamed:@"BackgroundImage"];
backgroundNode.position = CGPointMake(self.size.width/2, self.size.height/2);
backgroundNode.zPosition = 1;
[self addChild:backgroundNode];

实际上问题在于,在新的 Xcode 6.3.1 中,当您创建新场景时,它会添加某种 SKScene 视图,该视图比 iPhone 普通屏幕大,可能是 iPhone 6+ 屏幕尺寸导致背景图像超出屏幕范围。我只需要删除这个视图文件,而不是从代码中重新加载它,然后就可以了。

谢谢,上面的评论帮助我理解了这一点。