Показать сообщение отдельно
Старый 22.08.2012, 15:27   #8
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Гравитация в 2D

Сообщение от Жека Посмотреть сообщение
Начну с хорошего - выкладываю подправленный код.
Из плохого: код ужасен из-за использавания GOSUB, и имена переменных не по мне.

Что было неправильно:
- в типе player все поля были целочисленные, но для ускорения и скорости это не подходит.
- зачем ты проверял на улёт выше экрана? пусть летит, всё равно вернётся назад при правильной формуле
- из координаты Y гравитацию вычитать надо только если мы не в состоянии прыжка, т.к. прыжок отдельно обрабатывается
- при достижении земли (у тебя это у=640) ты зачем-то ставишь игрока в координату у=0, т.е. на небо, а надо оставлять на земле

Вот код, работает без картинок, вывод картинок закомментировал. Из графики есть только прямоугольный пол и квадратный игрок.

Откажись от GOSUB, пожалуйста.
Сразу скажу. Перешел на Blitzmax, но спасибо, что помог. Посмотрю свои недочеты. Сравню.
Насчет Gosub, чтоже тогда использовать? Я что-то не увидел другого оператора перехода на лейблы.
Далее.. устанавливаю y = 0, после того как он упадет в яму(То есть вниз за экран). Это так по игре нужно. игра то Mario. ахахх хотя я уже её забросил.
(Offline)
 
Ответить с цитированием