JFrame против JPanel - PullRequest
       0

JFrame против JPanel

3 голосов
/ 01 марта 2012

Я делаю игровой движок, включающий физический и графический движок. Сейчас мой графический движок настроен на 60 кадров в секунду, и иногда я замечаю медленные обновления на экране. У меня есть JFrame, в который я добавляю JPanel, который перемещается, то есть графический движок выполняет frame.repaint () каждый цикл. Я начинаю верить, что эта перекраска в кадре делает небольшую задержку на экране.

Задержка такова, что JPanel движется по прямой линии, и внезапно она может прыгнуть немного дальше, чем обычно.

Лучше ли поместить JPanel "gameField" на JFrame, а затем добавить JPanel "player" в gameField и перекрасить gameField вместо этого? Или это то же самое, что перекрасить JFrame? Я только что услышал, что JFrame должен быть тяжелым компонентом.

Я пытался установить более высокий fps, который ничего не меняет.

1 Ответ

3 голосов
/ 01 марта 2012

Посмотрите на эту страницу здесь , это много для чтения, но должно содержать большую часть того, что вам нужно.

РЕДАКТИРОВАТЬ: Эта страница здесь немного более кратким

Этот пост переполнения стека здесь сделки с двойной буферизацией.

Но лучший совет, который я могу вам дать, - это найти «Программирование игр Killer на Java».Вы можете легко получить старые версии электронных книг из сети.Многие вещи немного устарели, но первые несколько глав, которые касаются создания игрового цикла и записи в буфер, все еще очень актуальны и помогут вам в долгосрочной перспективе!

...