Проверяете, когда SKPhysicsBody перестал двигаться?

Можно ли каким-либо образом рассчитать, когда SKPhysicsBody останавливается (или, скорее, его скорость становится очень маленькой), чтобы вы могли удалить его из физического моделирования. Я пробовал смотреть скорость, но есть две проблемы. (1) в любом заданном отскоке есть точка на вершине, где объект имеет небольшую скорость, (2) когда SKPhysicsBody явно закончил отскок, velocity.dy все еще показывает довольно большое число (т.е. 30+), хотя, по сути, тело сейчас находится в покое. Просто любопытно, есть ли что-нибудь, что я мог пропустить для проверки, когда тело больше не движется?


person fuzzygoat    schedule 30.09.2013    source источник


Ответы (2)


SKPhysicsBody имеет логическое свойство resting, которое включает физический мир, когда считается, что он находится в состоянии покоя - это может быть то, что вы ищете. Не уверен, что это сработает в вашем случае, поскольку вы не можете установить порог, когда он срабатывает.

person Matt    schedule 30.09.2013
comment
Спасибо, спасибо, я совсем пропустил это. Это именно то, что я был после, высоко ценится. - person fuzzygoat; 30.09.2013

Похоже, вам нужен resting свойство SKPhysicsBody.

Из связанной документации,

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

person Greg    schedule 30.09.2013