【发布时间】:2014-10-31 23:02:01
【问题描述】:
为了练习,我正在尝试构建一个简单的游戏,但无法弄清楚为什么框架的边框没有移动而其他一切都在移动。
当我到达最后一根柱子并向右移动一点时,游戏结束。这在某种程度上是因为当山羊和柱子移动时,框架边框不会移动。
我有 SKNode 的三层。一个叫_mainLayer,第二个叫_playerLayer,第三个叫_squareLayer。 _mainLayer 包含 _playerLayer 和 _squareLayer。
当我移动屏幕时,正在使用此代码:
-(void)moveScreen {
_xMoved += 100;
SKAction *move = [SKAction moveByX:-100 y:0 duration:0.5];
[_squareLayer runAction:move];
[_playerLayer runAction:move];
}
我尝试使用 [_mainLayer runAction:move] 而不是其他两个调用,但是游戏结束屏幕没有移动,直接添加到场景类(“self”)中。
_gameOverScreen = [[EndScene alloc] init];
_gameOverScreen.position = CGPointMake(self.size.width / 2, self.size.height / 2);
_gameOverScreen.gameOver.size = CGSizeMake(self.frame.size.width, _gameOverScreen.gameOver.size.height / 2);
[self addChild:_gameOverScreen];
游戏结束画面是我自己制作的一个 SKNode 类。
有人有什么建议吗?
【问题讨论】:
-
需要发生什么才能导致游戏结束?
-
当山羊(玩家)在屏幕任意一侧碰到屏幕边框时,游戏应该结束。问题是,如果我像第二张图片一样到达第二个第三个(最后一个)柱子,游戏就会结束。当击中一个新的柱子时,我在 x 轴上移动了 _playerLayer 和 _squareLayer -100,但不知何故,框架的边界不会移动太多,所以当击中第三个柱子时,游戏结束,如第二张图片所示。话虽如此,我想出了一个解决方案,我将在一秒钟内发布。
标签: objective-c xcode5 sprite-kit layer