我有一个游戏'有3个精灵。 如果用户点击“Sprite1'”,之后点击“Sprite2'”。 有没有办法记住哪些精灵被按下了? 它只有2个精灵,如果有更多,我将需要清空记忆'并且从最后一个触摸过来开始,我不想和布尔人一起工作。
我所有的精灵都有.name
属性,所以我可以在那里访问它们。
IF
声明是否足够
var spriteArr:[String] = []
let location = (touch as UITouch).locationInNode(self)
for touch in touches{
if spriteArr.count < 2 {
spriteArr.append(self.nodeAtPoint(location))
}else{
spriteArr.removeAll
spriteArr.append(self.nodeAtPoint(location))
}
}
答案 0 :(得分:3)
您可以通过访问Node的.name并将名称存储在这样的数组中来检查Sprite。
var nodeNames:[String] = []
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
var touchedNode:SKNode = nodeAtPoint(touch.locationInNode(self))
if(nodeNames.count > 2){
nodeNames = []
}
if(touchedNode.name != nil){
if(!contains(nodeNames, touchedNode.name)){
nodeNames.append(touchedNode.name)
}
}
}