雪碧套件记住了哪个精灵被触摸了



我有一个有 3 个精灵的'游戏'。如果用户点击"精灵1",然后点击"精灵2"。有没有办法记住按下了哪些精灵?它仅适用于 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))
   }
}

您可以通过访问节点的 .name 并将名称存储在这样的数组中来检查精灵。

 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)
            }
        }
    }

最新更新