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