【问题标题】:Spritekit actions doesn't work on all devicesSpritekit 动作不适用于所有设备
【发布时间】:2018-03-20 19:40:18
【问题描述】:

我有 spritekit 场景,其中元素具有动作:

https://scr.hu/dXryae

https://scr.hu/Gw3Ra5

我正在加载这个场景,获取 Overlay 元素并将它的每个子元素放在游戏的主场景中。在我尝试为其添加更多功能之前,一切都运行良好。此“功能”导致操作不起作用。但这不是我的问题。我回到工作副本,现在它在不同设备上的工作方式不同。

测试设备:

Iphone 5 10.3.3 - 动作有效

Iphone 7 Plus 11.0.2 - 操作不起作用

我注意到,当我转到 iOS 的主屏幕并返回游戏操作时开始工作。 我认为这可能是一些缓存问题,但可能我尝试了所有清理它的方法。

我在 xcode 或控制台中没有错误/警告。

【问题讨论】:

  • 您应该在您的问题中发布图片,而不是使用第三方来源。如果第三方网站出现故障,这个问​​题对其他人来说毫无用处。
  • 听起来你没有“正确”管理isPaused(它有点“错误”,因为Apple希望它在这种错误状态下工作)每次你调用isPaused时,所有的孩子节点也有这个值翻转。某些事件也会导致它翻转,这可能会根据您使用的 iOS 版本而改变。
  • @Knight0fDragon 绝对是我在 iOS11 中煞费苦心地发现的场景有时会错误地切换到暂停。我正在输入我的答案,因为你评论了大声笑
  • @RonMyschuk,是的,我只是禁用了 isPaused(覆盖什么都不做)并设置我自己的变量来处理它
  • Ron Myschuk,我不能,因为我在 Stackoverflow 上的排名很低。 @Knight0fDragon,非常感谢!我在添加到场景的节点上将 isPaused 设置为 false,它现在可以工作了。我不知道为什么它被设置为 true,因为我没有使用它。

标签: ios iphone swift sprite-kit xcode9


【解决方案1】:

这是一个远景......但我在 iOS11 中的 GameScene 遇到了类似的问题。但是我被嵌入到消息中,所以我不确定这是同一个问题,但我有同样的症状。过渡期间的游戏场景在过渡到我运行 myScene.isPaused = false 的场景后自动暂停(但仅在 iOS11 中),它解决了问题,并且对 iOS10 没有不利影响

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多