我试图在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
}
}
答案 0 :(得分:1)
知道21
没有SKSpriteNode
属性,您应该使用继承force
属性的类名(用于制作SKSpriteNode
..)
一个例子可能是这样的:
enemy
然后在你的游戏场景中执行:
class Enemy : SKSpriteNode {
var force: Int = 0
...
}