Проверьте скорость столкновения в физике бурундука - PullRequest
1 голос
/ 03 июля 2010

Я использую Бурундук 5 для iPhone с Cocos2D. При столкновении между двумя конкретными объектами я хотел бы запустить метод, который проверяет скорость этого столкновения, если он больше x, он запускает один набор кода, а если он ниже x, он запускает другой.

Теперь я понимаю основы, но не могу разработать код для запуска метода обнаружения столкновений и код для проверки скорости удара.

Любая помощь или указатели будут с благодарностью.

Приветствие.

Ответы [ 2 ]

0 голосов
/ 06 июля 2012

Для Бурундука 5, если вы хотите воспроизвести звук или применить урон от столкновения, я бы порекомендовал вызвать функцию cpArbiterTotalImpulse () из обратного вызова после решения. Вы можете найти более подробную информацию в документации здесь. http://chipmunk -physics.net / выпуск / Бурундук-5.x / Бурундук-5.3.5-Docs / # Callbacks

Кроме того, Бурундук 5 на данный момент довольно стар. Если это не проблема, я бы предложил обновить до 6.x. Тогда вы можете использовать функцию cpArbiterTotalKE (). (Если вы близки к завершению существующего проекта, я бы просто придерживался 5.x.) Кинетическая энергия является еще лучшим индикатором того, насколько «плох» столкновение, чем сила импульса.

0 голосов
/ 03 июля 2010

Проверьте функцию addCollisionCallbackBetweenType в SpaceManager.h, которая может помочь при регистрации коллизий.

После этого вы можете проверить свойство v для объектов cpBody, cpVect от скорости.(http://code.google.com/p/chipmunk-physics/source/browse/trunk/include/chipmunk/cpBody.h, не связан, новый пользователь.)

У меня нет опыта работы с бурундуком, но это то, что немного погуглило.

...