8
基本的なゲームを開発しようとしています。ルートノードに複数の子ノードが追加されたシーンがあります。各ノードには、friend
またはenemy
のいずれかの名前のいずれかがあります。シーンキットでSwiftで名前を持つすべての子ノードを取得する方法
ユーザーは、私がenemy
命名されているすべての子ノードを削除するenemy
ノードの1つを触れた場合。
私はいくつかのことを試しましたが、何も動作していないようです。私touchesBegan
機能で
:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
let location = touch.location(in: gameView)
let hitList = gameView.hitTest(location, options: nil)
if let hitObject = hitList.first {
let node = hitObject.node
//This doesn't work
gameScene.rootNode.childNodes(passingTest: { (node, UnsafeMutablePointer<ObjCBool>) -> Bool in
node.removeFromParentNode()
}
}
は、私はまた、gameScene.rootNode.enumerateChildNodes(withName:)
を使用しようとしましたが、私はどちらか働いていることを得ることができません。
if node.name == "enemy" {
node.removeFromParentNode()
}
は、しかし、これが唯一のシングルヒットされたノードではなく、それらのすべてを削除します:私はそこの代わりにこのような何かを行う場合、私は作業を取得することができますどのような
です。 Swift with Scene Kitで特定の名前の子ノードをすべて取得するにはどうすればよいですか?
enumerateChildNodes(withName: "敵"、使用:{ ノード、_}) –
この@ElTomatoは私を与えます'呼び出し中'のエラー「余分な引数」 – maxshuty
'enumerateChildNodes(withName:)'が動作するはずです。https://stackoverflow.com/a/26748966/1187415 –