SpriteNode / Shapes改变大小并在返回GameScene后消失(Swift SpriteKit)

时间:2015-07-15 22:20:08

标签: ios xcode swift debugging sprite-kit

行动中的问题的GIF: http://i.imgur.com/hiF5lyw.gifv

如你所见,主播放器是一个SKSpriteNode,当你遇到一个SKShapeNode的下降块时,游戏会切换到GameOver场景。当您在GameOver场景中单击重新启动并返回到GameScene时,下降的块会消失,并且Player精灵的尺寸会随着其y位置而改变。

所有代码都包含非常详细的评论,但如果您对此有任何疑问,请随时提出。

由于我的播放器精灵的大小是基于屏幕的大小,因此在切换场景时可能与屏幕尺寸变化有关。此外,奇怪的是下降的敌人不会出现几秒钟,但随后节点数量急剧增加并触发另一个GameOver场景转换。

也许我必须用GameViewController改变一些东西?

任何帮助都将不胜感激,我已经在这里工作了几个小时,我似乎无法弄清楚为什么它搞乱了。

2 个答案:

答案 0 :(得分:0)

想出来。 我创建了两个新变量:

var transition:SKTransition = SKTransition.fadeWithDuration(0.5)

var gameOver:SKScene = GameOver(size:self.size)

然后在使用以下方法调用场景开关时实现:

self.view?.presentScene(gameOver,transition:transition)

我认为尺寸:self.size是修正它的原因。

答案 1 :(得分:0)

如果在进行转换时更改节点大小时遇到​​麻烦,而不是size: self.size,则应使用fileNamed: nameOfYourScene。这对我有用。