管理 GameScenes 更新方法并在其他 类 中引用更改实例属性

Managing GameScenes update method and referencing changing instance properties within other classes

我正在 Swift 制作我的第一场比赛,我正在尝试获得一个 SKSpriteNode subclass 实例 (trailingSprite) 或 "trail" 用户控制的另一个 SKSpriteNode subclass (User)。我能够通过在 trailingSprite class 中制作一个 move(aUser:User) 方法来实现这一点,该方法将速度矢量应用于尾部物体,这就是我然后 postions 两者的区别在 GameScenes Update 函数中调用此方法。然而,这个 trailingSprite 并不总是出现在屏幕上,并且可以在随机时间以不同的数量生成。是否有更有效的方法来检索每个 trailingSprite 实例中 "live" 或 User 实例的更新位置,而不必为 Update 中的每个实例调用移动方法(最终不会工作)?我还尝试通过引用传递 User 实例,但这仍然不起作用,因为速度矢量从未从原始位置更新。任何帮助都会很棒!

update 方法中,您应该能够通过查找具有相应名称的所有节点,在场景中的每个 trailingSprite 上调用移动方法。

self.enumerateChildNodes(withName: "trailingSprite", using: { node, _ in
    if let trailingSprite = node as? TrailingSprite {
        trailingSprite.move(aUser: user)
    }
})

这需要您在 TrailingSprite class 上设置 name 属性:

self.name = "trailingSprite"