タッチが有効なLocationNodeというサブクラス化されたノードがあります。それはこのように見えます。サブクラス化されたノードですが、シーンのタッチを検出したい
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touchLocation = touches.first!.location(in: self)
let touchedNode = self.atPoint(touchLocation)
//if touchedNode.name != nil {
print("touched")
//}
}
私はこれを行うしようとすると、しかし、それを私は、実際のシーンファイルでは、このようなすべてのタッチイベントを制御したいので、私は、このサブクラスのファイルにtouchesBeganをオーバーライドしていない
class LocationNode: SKSpriteNode, CustomNodeEvents {
func didMoveToScene() {
self.isUserInteractionEnabled = true
}
}
動作しません。シーンファイル内のサブクラス化されたノードのタッチイベントを制御するにはどうすればよいですか?
編集:
ここで、私のオーバーライド機能は、シーン内でどのように見えるのですか。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touchLocation = touches.first!.location(in: self)
let touchedNode = self.atPoint(touchLocation)
print("TOUCHED")
}
あなたは、あなたがメインにも(両方の場所にタッチを扱うことができる親クラスへの「タッチの復帰」を持つように、この場合
LocationNode
には、カスタムクラスに以下のコードを実装することができ
あなたはこれで何を意味するか説明することができます:「私はこのシーンでtouchesBeganをオーバーライドしていない、私は実際のシーンファイルでは、このようなすべてのタッチイベントを制御したいので:」 – Confused
申し訳ありませんが、私は今これを編集しました。 – illuminatedtype
サブクラス化されたノードでのユーザーのやり取りを無効にする必要があります – Whirlwind