2015-02-16 3 views
1

Для теста я создал два объекта SCNBox и один SCNFLoor.Динамические физические тела не останутся неподвижными

Я установил сцену.physicsWorld.gravity = SCNVector3Make (0, -9.8,0);

Я поместил один куб на пол и один куб на другой.

Все три узла имеют нулевое вращение, а значения physicalBody.friction - 1.0.

Я измеряю скорость узла в 3-х точках:: didBeginContact, didUpdateContact и didEndContact. Если линейная или угловая скорость не равна нулю, я устанавливаю ее равной нулю, а также свойства velocityFactor и AngularVelocityFactor каждого динамического узла.

Независимо от любого из этих пунктов объекты продолжают двигаться (хотя и медленно), но проблема там.

Может ли кто-нибудь указать мне в правильном направлении, что мне не хватает? в документации указано, что значение трения 1 предотвратит скольжение. Это явно не так.

Я ищу некоторую помощь в кодировании, где я могу либо обнулить скорость узла до того, как его положение будет обновляться в течение каждого цикла, либо предотвратит возникновение скольжения.

ответ

0

Решение было обеспечить объекты не перемещались в методе SCNSceneRendererDelegate: - (Недействительными) рендерер: (идентификатор) aRenderer updateAtTime: (NSTimeInterval) Время Это предварительное моделирование физических процессов, и вы можете обеспечить неподвижные объекты остаются неподвижными это путь. Это не идеальный, но физический симулятор.

+0

Можете ли вы написать короткий пример того, что вы делаете внутри updateAtTime? Я также не могу получить этот класс для вызова, и я устанавливаю делегат. – Macaret

Смежные вопросы