В моем проекте SpriteKit
я учусь использовать замечательный встроенный физический движок. Я выполняю это с использованием экземпляров SKPhysicsBody
, прикрепленных к узлам, и до сих пор он хорошо зарекомендовал себя. Моя текущая настройка - когда я добавляю узел, я устанавливаю его вектор physicsBody
velocity
на некоторую постоянную скорость. Несмотря на то, что ручная установка скорости на некоторое фиксированное значение, через несколько секунд столкновений узлов, их скорость уменьшается. Я предполагаю, что это характеристика по умолчанию, поскольку она имитирует физику реальной жизни (потеря энергии за счет нескольких столкновений). Я хотел бы остановиться на этом. Например, я бы хотел, чтобы, несмотря на многочисленные столкновения, вся энергия была полностью «сохранена» и не потеряна скорость. Вот несколько вещей, которые я пробовал безрезультатно.Стоп-торможение в SKPhysicsBody Collisions
physicsBody.linearDamping = 0;
physicsBody.friction = 0;
Это даже physicsBody
свойства, или делает это поведение шток от собственности на SKScene
«ы physicsWorld
собственности?
Вы не можете сохранить свой импульс, как вы описали. Есть несколько вещей, которые вы можете сделать, хотя для поддержания постоянной скорости. Есть много вещей, которые вы могли бы сделать. Одним из них вы можете применить к вам объект без остановки и ограничить его скорость. – sangony
Вы можете установить для collisionBitMask все физические тела в ноль. Это заставит их двигаться дальше, как будто они не сталкиваются ни с чем. Тем не менее, вы должны установить контактTestBitMask, так как тогда делегаты по-прежнему будут вызваны. Если вы хотите, чтобы тела столкнулись, вы можете установить их скорости в контактных делегатах – ZeMoon
@sangony Я нашел ответ и отправил, если вы все еще заинтересованы. –