我需要检测用户是否点击了一个精灵节点。Sprite节点没有检测到触摸?
在这里,我创建精灵节点:
var enemy1Texture = SKTexture(imageNamed: "enemy1")
enemy1 = SKSpriteNode(texture: enemy1Texture)
enemy1.setScale(0.3)
enemy1.position = CGPoint(x: self.size.width * 0.5, y: self.size.height * 1.2)
self.addChild(enemy1)
在
touchesBegan
在这里,我设置变量用于检测触摸:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch: AnyObject in touches {
let touch = touches.first as? UITouch
let location = touch!.locationInNode(self)
let touchedNode = self.nodeAtPoint(location)
let touchedNodeName = touchedNode.name
enemy1.name = "enemy1"
enemy1.userInteractionEnabled = true
然后在函数结束时,我检查名称然后尝试执行相应的代码:
if touchedNodeName == "enemy1" {
//Enemy touched code
println("Enemy1 was touched!")
}
它不工作。当我点击Sprite节点向下移动屏幕时,没有任何内容被打印到控制台上。我究竟做错了什么?
你是右命名didMoveToView中的节点是问题的一半,另一半是我正在检查节点是否在已经满足的if-else语句的END处被轻敲,因此它没有运行用于触摸节点。谢谢! – skyguy