Box2D и звуковая физика для платформера - PullRequest
0 голосов
/ 04 августа 2010

Я работаю над платформером для iPhone, который использует Box2D и cocos2D.

Я пытаюсь найти способ создать такое же поведение для моего контролируемого персонажа, как в играх Sonic the Hedgehog, но продолжаю использовать физическую библиотеку Box2D, поскольку хочу, чтобы снаряды и некоторые объекты уровня вели себя в соответствии с реалистичная физика, наряду с определенными ситуациями, в которых участвует контролируемый персонаж (прыжки, попадание в объекты и т. д.).

Основные проблемы, с которыми я сталкиваюсь, - это удержание персонажа на земле при прохождении по выпуклым кривым и поддержание чувства контакта с землей, пока не будет достигнуто значительное расстояние от него. Я только хочу, чтобы персонаж реагировал на левые и правые команды, когда на земле, но моя фигура имеет тенденцию отрываться от земли при прохождении небольших кривых, так что время реакции задерживается ненадолго, пока контакт не восстановится. Визуально разделения нет, но оно достаточно велико, чтобы изменить состояние на земле или нет. Кроме того, персонаж не «обнимает» большие кривые так, как мне хотелось бы.

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

1 Ответ

0 голосов
/ 04 августа 2010

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

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

Если ваше движение работает в общем случае, вы могли бысделать движение, когда он находится в контакте с землей с кривой, особый случай, когда вы сами управляете физикой и зависаете только в реальном мире для обнаружения столкновений.

Другой вариант - заставить большинство объектов использовать «подделку»физику, и используйте box2d только для обнаружения столкновений или для «реалистичных» объектов.

...