2016-05-16 47 views
0

我知道这可能以前曾被问过,但没有什么正是我需要的。现在想象一下这种情况,我有一个游戏,在这个游戏中,屏幕中间有一个名为Background的SKSpriteNode。在那个背景上,Sprite有一个叫做Button的小孩。如何检测按钮上的触摸是否已结束。如果有人能够帮助我使用TouchesEnded函数的代码,并且可能会更详细地解释发生了什么。谢谢你,swift会是理想的,但我想如果需要的话我可以阅读Objective-C。如何检测一个孩子精灵的触摸

ADDED信息

这里是我的两个精灵:

let buttonBackground = SKSpriteNode(imageNamed: "Button Background.png") //The parent node of button 
let soundOn = SKSpriteNode(imageNamed: "Sound On.png") //The button being pressed, which is a child of buttonBackground 

这里是我的touchesEnded功能:

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    // Called when a touch begins 

    for touch in touches { 
     let location = touch.locationInNode(self) 
     let nodeAtTouch = self.nodeAtPoint(location) 
     let touchedSprite = nodeAtTouch as! SKSpriteNode 

     if touchedSprite == button { 
      print("YES") 
     } 
    } 
} 

回答

1

当触摸结束,从这一点来说

得到节点
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    for touch in touches { 
     let location = touch.locationInNode(self) 
     let something = self.nodeAtPoint(location) 
     let skNode = something as! SKSpriteNode 
     //Do something with skNode 
    } 
} 
+0

skNode是您从触摸中检索到的SKSpriteNode。请显示您的碰撞如何工作的一些代码。如果您对此不熟悉,请查看:http://www.techotopia.com/index.php/A_Swift_iOS_8_Sprite_Kit_Collision_Handling_Tutorial – penatheboss

+0

我的错我的意思是一个声明,显示是否触摸skNode时 – grahamcracker1234

+0

skNode是节点被触摸...每当触摸发生时skNode是被触摸的节点 – penatheboss