Таймеры Swing ускоряются или замедляются в зависимости от использования моей памяти в диспетчере задач - PullRequest
0 голосов
/ 01 апреля 2019

Таймеры качания ускоряются или замедляются в зависимости от того, сколько памяти используется в диспетчере задач.Как сделать так, чтобы таймеры качания были согласованы независимо от того, что происходит с процессором, памятью и т. Д.?Или это лучший способ анимации элементов на экране, кроме таймера поворота?

Я уже пытался установить setCoalesce (false), но это не сработало.

private static Timer playerShootingTimer;

public static void playerShooting() {

    ActionListener task1 = new ActionListener() {
        public void actionPerformed(ActionEvent e) {

                        // task

            }};
            playerShootingTimer = new Timer(10, task1);
            playerShootingTimer.setCoalesce(false);
            playerShootingTimer.setRepeats(true);
            playerShootingTimer.start();

    }

Вот так я настроил все три таймера свинга.Каждый из них делает разные вещи, такие как анимация определенных частей моей 2D-игры.

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

Моя полная программа может быть проверена и просмотрена для получения дополнительной информации, если я оставлю какие-либо важные вещи на https://github.com/programmingluis/spaceinvaders

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