管理 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"
我正在 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"