Перемещение дочерних узлов с динамическим «SCNPhysicsBody» через анимацию родительского узла - PullRequest
0 голосов
/ 02 сентября 2018

Я делаю игру, которая в основном представляет собой pacman в 3D, используя SceneKit.

enter image description here

Дерево узлов определяется следующим образом:

rootNode <-- GameRotationNode <-- GameNode

Все узлы («синие ящики», цветные шары, точки, голубые и фиолетовые плитки для полов) являются дочерними для GameNode.

Все узлы, кроме цветных шаров, имеют либо статическое, либо физическое тело. Цветные шарики имеют динамическое физическое тело.

Я применяю постоянное вращение по оси Y ко всей игровой доске со следующим кодом

let Sequence = SCNAction.repeatForever(SCNAction.rotateBy(x: 0, 
                                                          y: degreesToRadians(Degres: 90), 
                                                          z: 0, 
                                                   duration: 5))
GameRotationNode.runAction(Sequence)

Проблема в том, что цветные шары не вращаются, как остальная часть доски. Все остальное вращается нормально, но узлы с динамическим телом физики не вращение. Если я изменю их физическое тело на статическое или нет, то они тоже будут вращаться.

Но цветные шарики (а затем и некоторые другие узлы) должны иметь динамическое физическое тело для обработки движений, контактов и столкновений.

Это ограничение управления физическим телом SceneKit?

Или есть другие способы добиться того, чего я хочу?

...