SpriteKit动画突然停止

3
我正在尝试调试SpriteKit动画的非常奇怪的行为。这很容易重现:
  1. 在Xcode中创建一个新的游戏项目,保持所有选项不变。
  2. 打开GameScene.swift文件,并将第23行从更改为
  3. 连接您的手机并开始调试会话,观察文本(Hello, World!)如何淡入并以完全亮度显示。目前为止,一切都很好。
  4. 从Xcode停止应用程序,然后再次点击手机上的应用程序图标启动它。
  5. 观察文本,虽然可见,但未完全淡入。
我发现这是想要了解为什么我的动画在应用程序加载时只停留在一半时遇到的问题。我假设如果某些初始化步骤比动画时间长,视图就会停止刷新,但我不知道如何修复它。我还注意到,如果您点击屏幕,它会刷新并出现最终状态的动画视图。
iOS版本:10.3

找到并隔离了! - Confused
1个回答

0

我发现了一个与iOS11和SpriteKit相关的严重问题。在过渡期间,游戏场景会自动暂停(但仅限于iOS11)。

在转换到场景后运行

myScene.isPaused = false

这应该可以解决问题,并且在iOS10上运行游戏时不应产生任何负面影响。


谢谢您的建议。您把 myScene.isPaused = false 放在哪里?我试过放在 didMove 里,但没有任何效果。另外,我忘了提到,出现问题的目标版本是10.3。 - Sergey Anisimov
1
如果您想将其放在场景内的didMove函数中,那么它只需要是isPaused = false。如果您想将其放在GameViewController中,请在presentScene行之后使用sceneName.isPaused = false。 - Ron Myschuk
尝试了两种方法 - 都不起作用,动画停止了,抱歉。 - Sergey Anisimov
viewDidAppear 中执行此操作。这应该在场景显示在视图上后触发。 - Knight0fDragon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接