私のシーンのノードの1つに問題があるようです。Swift + SpriteKit - 表示されていなくてもボタンをクリックできます
私がボタンを持っている:
func createAttackButton() {
attackButton.zPosition = 1
attackButton.anchorPoint = CGPointZero
attackButton.position = CGPointMake(20, 20)
attackButton.size = CGSize(width: 150, height: 40)
addChild(attackButton)
}
接触が敵で作られたとき、この関数が呼び出されます。
私はtouchesBegan()FUNCを使用して、このボタンから機能を実行するには:で、しかし
attackButton.removeFromParent()
:敵は、私は攻撃ボタンノードを削除するに破壊された後
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if attackButton.containsPoint(location) {
print("Attack Button Clicked")
}
}
}
攻撃ボタンが表示された領域。削除されると、その領域はまだクリック可能です。
アイデア?
はい、containsPointは簡単な点を比較するためのもので、動作させるために親は必要ありません。 'ノードの境界には、その点が含まれていますか? 'は、基本的に関数が行っていることです。 positionはオプションではないので、幅と高さがゼロでなければcontainsPointを常に通過させることができますが、これが許されているかどうかはわかりません。 – Knight0fDragon