Swing计时器会加速还是减速,具体取决于任务管理器中使用了多少内存。无论CPU,内存等发生什么情况,如何使摆动定时器保持一致?或者,除了摆动计时器外,它们是在屏幕上为元素提供动画效果的更好方法吗?
我已经尝试设置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上遗漏了任何重要内容,则可以对我的完整程序进行测试并查看更多信息。