2012-05-11 3 views
0

Мне просто интересно, был ли способ изменить количество времени, пока состояние сна не будет активировано для тела в box2d (cocos2d).Box2D time time

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

Благодаря

ответ

2

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

В Box2D вы не можете изменить поведение, если только не модифицируете исходный код Box2D (не рекомендуется). В «Бурундук» вы можете, по крайней мере, установить порог того, как долго тело должно простаивать до того, как оно будет усыновлено. Изменение этого значения иногда может привести к тому, что медленно движущиеся объекты внезапно упадут в спящий режим.

Чтобы реализовать поведение, которое вы хотите, вы должны определить свой собственный набор правил. Итерации по всем телам, которые могут двигаться медленно в конце игры. Получите значения для углового вращения и скорости и проверьте, упали ли они ниже определенного порога, который чувствует себя хорошо для вашей игры. Затем завершите игру, или вы также можете вручную поместить объект в режим сна с помощью body-> SetAwake (false).