Java中的游戏速度变慢了

时间:2013-12-28 21:13:00

标签: java swing timer

我用Java构建了一个简单的“乒乓”2D游戏。

游戏使用Swing计时器,每5毫秒关闭一次并触发actionPerformed方法。

此方法通过更改x和y坐标并重新绘制屏幕,​​在屏幕上“移动”(每5毫秒)一次。

大约一小时前,游戏运行良好。然后我休息一下,大约一分钟前回到电脑前。

现在,当我运行游戏时,一切都慢得多。 (例如,“乒乓球”屏幕周围的苍蝇不会像以前那样快速移动。)

可能是什么问题? (我不认为提供代码是必要的,因为这类问题可能与代码无关,因为它在问题开始出现之前没有改变。如果是,请告诉我。)

编辑:一些代码:

在程序主对象的构造函数中:

        timer = new Timer(40,this);
    timer.start();

在主要对象的actionPerformed中:

    public void actionPerformed(ActionEvent e) {

    bPaddle.move();
    tPaddle.move();
    ball.move();
    checkCollision();
    checkInScreen();

    repaint();

}

程序中还要添加其他任何内容吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你应该尝试分开重新计算和重绘。这样,无论你能达到的每秒帧数,你的乒乓球总是(似乎)移动速度相同。

你要做的一件事是,你需要多长时间来计算新的职位,并减去你在重新计算之间等待的时间。