Лаг в Java игре - PullRequest
       19

Лаг в Java игре

3 голосов
/ 28 сентября 2011

Я пишу игру на Java.И, о чудо, у меня проблемы с производительностью.Я измерял саму краску - 1000 циклов за 3 мс вершины.Логика игры даже ниже этого.Все идет нормально.Но я все еще сталкиваюсь с досадной задержкой: при прокрутке, при масштабировании, при нажатии.Проблемы усугубляются при увеличении масштаба и размещении большего количества объектов.Но все же - даже когда я повторяю картину 1000 раз, лаги остаются более или менее одинаковыми, так что этого не может быть.Я попытался поставить цикл в задаче - все тот же.Я пытался приостановить задачу между красками - все то же самое.Анимация проходит гладко, как шелк (так как частота кадров стабильна и высока, это имеет смысл).Так как же я могу организовать входы упорядоченным образом?Поместить их всех в отдельную ветку?Любой вклад будет и будет принята с благодарностью!

1 Ответ

9 голосов
/ 28 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...