获取SKSpriteNode

时间:2015-07-26 22:00:37

标签: swift location skspritenode

我有一个名为“Laser”的SKSpriteNode,它是在一个名为“shootLaser”的方法中创建的,其范围纯粹是该方法的本地。在重复计时器上调用shootLaser方法,每隔几秒创建一个新的Laser对象,所以我不能简单地在任何方法之外声明Laser对象。我还有一个名为laserLoc的变量,我希望在任何给定时间始终等于“Laser”对象的位置。在update()方法中(每次渲染帧时调用),我的想法是设置laserLoc = Laser.position,但由于Laser只是shootLaser方法的本地,我得到“使用未解析的标识符错误” 。有没有办法解决这个问题?

1 个答案:

答案 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 */  

    }
}