Я пытаюсь создать игру Jenga, чтобы начать с изучения, как использовать SceneKit
.
Я установил все физику в моих сценах, как и так (Левое изображение -block.scn
| Правое изображение - Scene.scn
с изображением сцены):

Блоки наПраво не имеет физику, установленную непосредственно к ним, поскольку они являются ссылочными узлами, поэтому добавление физики заставит это больше не работать должным образом.(Три блока были только что сдвинуты в сторону, чтобы позволить структуре упасть.)
Когда я запускаю приложение, блоки падают и действуют, как и ожидалось.Однако проблема возникает, когда я пытаюсь удалить узел.Вот как это выглядит, и вот ссылка на видео , чтобы увидеть, что происходит:

Во времявидео, я удалил блок , так как физика происходила и другие блоки упали, как и ожидалось, но после этого ничего не произошло после удаления большего количества блоков.
Я удаляю блоки, используя node.removeFromParentNode()
:
// MARK: Respond to touch events
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// Get the touch in the view
let touch = touches.first!
let location = touch.location(in: gameView)
let hitList = gameView.hitTest(location, options: nil)
// Perform operation on tapped object
if let hitObject = hitList.first {
let node = hitObject.node
if node.name == "block" {
node.removeFromParentNode()
}
}
}
Почему это происходит и как я могу это исправить?
Если у вас есть какие-либо вопросы, пожалуйста, задавайте!