Показать сообщение отдельно
  #6  
Старый 13.05.2013, 19:25
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
На данном этапе у меня проблема с прыжками.
Если надо прыгнуть, значит надо задать стартовую скорость (вверх). Вектор силы тяжести действует постоянно. Самый простой вариант - на каждой итерации игры (глобальный счетчик) нужно ко всем векторам скоростей прибавить вектор dt * g, где dt - интервал времени между двумя итерациями. После этого все тела сдвигаются в соответствии со своими векторами скоростей на V*dt. Если прыгает только герой - вычисляем только для него. Так же на время нахождения в воздухе (координата Y > 0) можно отключить управление.
Разумеется, нужно сделать проверку столкновений, но в данном случае все объекты можно считать круглыми, тогда столкновения считаются просто. Столкновение с землей - расстояние от центра окружности до прямой меньше радиуса, с другими предметами - расстояние между двумя центрами окружностей меньше суммы их радиусов.
Цитата:
Так же я все еще не могу разобраться как сделать "карточку"
"Карточка" - задать объект структурой или классом, у которого будут все характеристики. Жизни, координаты, скорости по осям. Для игрока - дополнительные параметры, как уровень, опыт и т.д. Все действия (перемещение, удары, "прокачка") производятся над этой структурой.
Такие вопросы надо по-хорошему решать на этапе проектирования. И ответ на них можно найти, если правильно сам вопрос поставить. А для этого нужно описать, что должно происходить, в виде структур данных и методов их обработки. Делать такие вещи после начала написания кода - получить кучу проблем при дальнейшей доработке. Но уже, собственно, поздно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием