![]() |
Персонаж прилипает к стенам
делаю игру на box2d. Персонаж в виде прямоугольника, по горизонтали двигается через SetLinearVelocity, а по вертикали через ApplyImpulse.
Когда персонаж находится в прыжке его можно направлять клавишами влево/вправо, так вот если удерживать например клавишу влево он приклеится к левой стене и не падает. Если задать объектам нулевое трение, то персонаж очень долго скользит и не может остановиться. Какие посоветуете выходы из данной ситуации? |
1) приделать персонажу колесо и двигать его влево-право вращением колеса, заодно пропадёт и управление в полёте
2) сделать только стены скользкими |
Цитата:
Нужно просто создать слушатель столкновений и при ударе о стену убирать нажатие клавиши, чтобы оно не становилось активным до следующего нажатия. Что-то типа: Код AS3:
Цитата:
|
Цитата:
это решает одним махом еще и проблему неровностей на полу, за которые, катающееся колесо цепляется не так сильно как коробка которую волокут Ваше решение напротив - убивает отскок от стенки. И представьте себе такую ситуацию: Код:
O--> |в моём случае, после падения, пресонаж побежит дальше, а с вашим решением оставовится |
Цитата:
Добавлено через 1 минуту artcraft, видел реализации с колесом, но если честно не понимаю чем колесо поможет от прилипания к стене? |
Цитата:
если разгонять персонажа колесом, то в прыжке колесо будет работать вхолостую и не будет ни на что влиять, пока персонаж не касается горизонтальной поверхности |
Тогда каким образом он сможет запрыгнуть, на что либо с места без разгона?
|
это обратная сторона медали, но ведь в реальном мире так всё и работает :)
никто, как Марио, не может менять направление прыжка пока летит ну и никто не запрещает, при прыжке, придать еще и горизонтальный импульс |
Цитата:
Тогда дико извиняюсь =) Да, вариант на самом деле неплохой |
| Часовой пояс GMT +4, время: 01:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.