Slick2D Movement Issue - PullRequest
       2

Slick2D Movement Issue

2 голосов
/ 17 декабря 2011

Итак, я преобразовал игру в Slick2D.Движение сломано, и я в растерянности.Раньше мы использовали методы KeyPressed и keyReleased, но теперь с Slick2D движение работает неправильно.

Да, с преобразованием в Slick2D ничего не получилось.Сначала лаунчер, о котором у меня была тема помощи раньше, а теперь вот эта.Однако другой темой была проблема с ненавистным кодом WebStart.

Вы можете двигаться только вправо, используя A. И вы не можете остановиться.Я использую правильные методы?Как я могу это исправить?Любая помощь с благодарностью!

Вот ссылка PasteBin на код, если это поможет!http://pastebin.com/GRH86Yuw

1 Ответ

3 голосов
/ 17 декабря 2011

Я фанат Slick, и я был бы рад помочь.

Принципиальное отличие состоит в том, что Slick является моделью опроса, а не моделью, управляемой событиями, когда дело доходит до ввода. По сути, в вашем методе обновления логики вы перебираете ключи, связанные с вашими событиями, и проверяете, нажата ли какая-либо из клавиш в данный момент, а затем запускаете эти события. По ряду причин, в которые я могу обратиться, если хотите, опрос имеет тенденцию работать лучше для игр, особенно с большим количеством клавиш. Это просто другой способ делать вещи, не такой сложный. Самый большой плюс в том, что вы получаете централизованную обработку ввода одним методом, вместо того, чтобы распределять его по нескольким объектам экземпляра KeyListener.

Если вы хотите посмотреть на Пешеходы - простой пешеходный сим, реализованный в Slick - вы можете увидеть пример того, как обрабатывать ввод в Slick.

В частности, я обрабатываю ввод в этом файле (строки 192-295) внутри метода processInput. По сути, вы передаете ссылку на объект GameContainer (объект Slick, содержащий вашу игру), и из него вы можете получить экземпляр для экземпляра Input, который позволит вам проверить, какие клавиши нажаты, какая мышь кнопки нажимаются и т. д.

...