在Touches中获取SKSpriteNode的属性

时间:2016-11-24 10:31:53

标签: ios swift sprite-kit

我试图在touchesBegan方法中读取SKSpriteNode的属性,但该属性不存在。它在其他地方创建的对象上的位置。

 let enemy = enemy(imageName: "enemy.png",force: "12")
 addChild(enemy)
 enemy.name = "enemy"
 print (enemy.force) // 12

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let touch = touches.first else {
            return
        }
        let touchLocation = touch.location(in: self)
        let touchedNode = self.atPoint(touchLocation) as! SKSpriteNode
        if(touchedNode.name == "enemy"){
            print(enemy.force) //Force property does not exist
        }
    }

1 个答案:

答案 0 :(得分:1)

知道21没有SKSpriteNode属性,您应该使用继承force属性的类名(用于制作SKSpriteNode ..)

一个例子可能是这样的:

enemy

然后在你的游戏场景中执行:

class Enemy : SKSpriteNode {
     var force: Int = 0
     ...
}