спрайт ударил стену или другой спрайт - PullRequest
0 голосов
/ 24 июня 2011

Я пытаюсь понять, как реализовать физику спрайта, когда он врезался в стену. скажем, у меня есть стена, и спрайт ударяет стену со скоростью и силой тяжести, используя box2d (cocos2d), что является самым простым способом применить физику того, что происходит рядом с ударом, понижая скорость, гравитацию, угол столкновение и т.д? связаться со слушателем? Должен ли я сам рассчитать, что произойдет дальше, и применить новую скорость и силу к телу? или box2d делает это для меня?

любое направление было бы замечательно. спасибо.

1 Ответ

1 голос
/ 24 июня 2011

box2d рассчитывает все для вас. Вам не нужно беспокоиться о том, что происходит после столкновения двух тел.

Если ваше тело упадет на землю, оно отскочит как естественный ответ. Вам не нужно применять новую силу, противоположную гравитации. Все расчеты выполняются физическим движком box2d. Физические двигатели созданы для этого.

В дополнение к этому, если вы хотите, вы можете применить свои собственные силы или импульсы, как показано ниже. Это зависит от вас.

b2Vec2 force = b2Vec2(100, 200);
yourBody->ApplyLinearImpulse(force, yourBodyDefinition.position);
...