Таймеры качания ускоряются или замедляются в зависимости от того, сколько памяти используется в диспетчере задач.Как сделать так, чтобы таймеры качания были согласованы независимо от того, что происходит с процессором, памятью и т. Д.?Или это лучший способ анимации элементов на экране, кроме таймера поворота?
Я уже пытался установить 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