行动中的问题的GIF: http://i.imgur.com/hiF5lyw.gifv
如你所见,主播放器是一个SKSpriteNode,当你遇到一个SKShapeNode的下降块时,游戏会切换到GameOver场景。当您在GameOver场景中单击重新启动并返回到GameScene时,下降的块会消失,并且Player精灵的尺寸会随着其y位置而改变。
所有代码都包含非常详细的评论,但如果您对此有任何疑问,请随时提出。
由于我的播放器精灵的大小是基于屏幕的大小,因此在切换场景时可能与屏幕尺寸变化有关。此外,奇怪的是下降的敌人不会出现几秒钟,但随后节点数量急剧增加并触发另一个GameOver场景转换。
也许我必须用GameViewController改变一些东西?
任何帮助都将不胜感激,我已经在这里工作了几个小时,我似乎无法弄清楚为什么它搞乱了。
答案 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
。这对我有用。