0
我想創建一組精靈,並在碰觸它們時一次刪除它們。到目前爲止發生的事情是,當我添加代碼時,最後一個精靈被移除,而不是我接觸的精靈。如何創建一個精靈,然後用Swift通過觸摸刪除SpriteKit中的特定精靈?
var sprite = SKSpriteNode?()
var touchLocation : CGPoint?
for touch in touches {
let location = touch.locationInNode(self)
touchLocation = location
addASprite()
}
removeSprite()
}
func addASprite(){
sprite = SKSpriteNode(color: UIColor.orangeColor(), size: CGSize(width: 100, height: 100))
sprite!.position = touchLocation!
self.addChild(sprite!)
}
func removeSprite(){
if ((sprite?.containsPoint(touchLocation!) != nil)){
sprite?.removeFromParent()
}
}
我想,for循環內的touchesBegan所定義,並且「子畫面」的變量被定義爲一個屬性(其不是一些方法內本地定義的)?如果是這種情況,發生的事情就是你一遍又一遍地創建精靈,但是「精靈」變量最終只能通過只引用最後創建的節點來引用。 – Whirlwind
我不得不刪除一些垃圾,但確實被刪除了。 – ParalaxWobat