swift - Xcode 9 : SKEditorReference doesn't allow animations?

标签 swift xcode animation

我似乎无法获取已通过引用添加的 Sprite 节点(在 Xcode 9 中将一个 sks 文件拖/放到另一个 sks 文件中)以进行动画处理。这似乎是允许的,因为你可以在物理上做这样的事情,但我不确定为什么子节点不会动画。

例子 1. 从标准的 spritekit 模板开始 2.添加一个HUD.sks文件,并在某处添加一个颜色 Sprite ,命名为“hudSpriteNode” 3. 将 HUD.sks 文件拖到 GameScene.sks 场景中 - 将其居中于零 4.找到hudSpriteNode(按名称) 5. 用 .position 移动它(有效!) 6. 用动画移动它(失败!)

HUD.sks HUD.sks screenshot

GameScene.sks GameScene.sks screenshot

将此代码添加到 GameScene.swift

if let testSpriteNode = childNode(withName: "//hudSpriteNode") as? SKSpriteNode {
  print("Found test sprite node")
  print("Test node position 1: \(testSpriteNode.position)")
  testSpriteNode.position = CGPoint.zero
  print("Test node position 2: \(testSpriteNode.position)")
  testSpriteNode.run(SKAction.moveBy(x: 200, y: 200, duration: 4))
}

Run...位置正确移动,但动画失败。

最佳答案

请参阅评论中@Marcel 的链接。他向我指出的帖子主要通过我的一些额外更新/验证来解决问题。不过,我能够让它工作的唯一方法是将 isPaused 放在我试图设置动画的确切 Sprite 节点上(在我的 ref 节点内)。

我在顶层尝试了isPaused=false,主场景didMove到 View ,但是没有效果,然后在主引用节点添加了isPaused=false,没有效果。它仅在我添加 isPaused=false 实际 Sprite (在我添加的 ref 节点内)时才起作用,我试图制作动画。我从主要和 ref 节点中删除了 isPaused=false,只要 isPaused=false 仍在相关 Sprite 节点上(我试图设置动画的 ref 节点中的节点):成功。

底线似乎是引用节点中包含的任何 Sprite 都需要 isPaused=false。

关于swift - Xcode 9 : SKEditorReference doesn't allow animations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647022/

相关文章:

objective-c - 如何从上到下为 View 设置动画并正确堆叠该 View ?

swift - 错误: Cannot convert value of type 'UInt64' to expected argument type 'DispatchTime'

ios - Fabric , Digit 不回找好友列表

objective-c - tabBarController 和第一个 Tab viewDidLoad

ios - 在 Swift 中使用 LSApplicationWorkspace

ios - 类中的 Swift 4 Viewcontroller 依赖注入(inject)

ios - UIButton 的返回动画不起作用

javascript - 如何使用 jquery 缓慢地设置 div 的宽度动画

ios - 如何使用 Swift 在 iOS 中以编程方式最小化铃声和警报音量?

ios - 如何等待所有数据下载完成并显示在TableView上?