Как я могу обновить холст Swing с определенной частотой кадров? - PullRequest
1 голос
/ 09 февраля 2020

Итак, для школьного проекта я должен сделать игру в Scala с Swing

. Я начал с создания окна, кнопки и холста, на котором я могу рисовать все, что захочу.

Проблема в том, что я нашел единственный способ обновить свой холст - это основанный на событиях, например, когда я нажимаю кнопку

, я хотел бы иметь возможность обновить sh холст на определенной частоте кадров, но кажется, что свинг основан на событиях, и я не знаю, где я мог бы положить время l oop или что-то подобное, чтобы иметь постоянную частоту обновления

1 Ответ

0 голосов
/ 10 февраля 2020

Просто создайте al oop, который неоднократно вызывает repaint(). Обратите внимание, что вызов repaint() только выдаст запрос и немедленно вернется (до рисования), поэтому вы не можете реально контролировать частоту кадров, вы можете просто ограничить ее. Чтобы измерить частоту кадров, вам нужно вычислить разницу во времени между текущим и последним циклом рисования в функции paintComponent() вашего холста.

Я недавно ответил на аналогичный вопрос, вы можете скопировать код оттуда, если это применимо для scala (я действительно не знаю языка): { ссылка }

...