我有一个名为“Laser”的SKSpriteNode,它是在一个名为“shootLaser”的方法中创建的,其范围纯粹是该方法的本地。在重复计时器上调用shootLaser方法,每隔几秒创建一个新的Laser对象,所以我不能简单地在任何方法之外声明Laser对象。我还有一个名为laserLoc的变量,我希望在任何给定时间始终等于“Laser”对象的位置。在update()方法中(每次渲染帧时调用),我的想法是设置laserLoc = Laser.position,但由于Laser只是shootLaser方法的本地,我得到“使用未解析的标识符错误” 。有没有办法解决这个问题?
答案 0 :(得分:0)
我认为您可以声明 SKSpriteNode 数组并将激光添加到其中。每次创建新激光时,您都可以在更新功能中检查它。
class GameScene: SKScene{
var checkForNodes = [SKSpriteNode]()
func shootLaser {
/* Your stuff */
var Laser = SKSpriteNode()
checkForNodes.append(Laser)
}
override func update(currentTime: NSTimeInterval) {
super.update(currentTime)
for Laser in checkForNodes {
/* Your Position Setup */
}
}