我正在用Java制作一个游戏,目前我所有的动画和游戏控制都使用计时器。但我在选择提高计时器速度的正确方法时遇到了麻烦。我的游戏应该随着游戏的进展越来越快,我发现有很多方法可以提高我的对象的速度,但我不确定哪种方法是最有效的。
例如,假设int xpos
是递增对象xposition的变量。
Timer timer = new Timer(100, new ActionListener() //01
{ //02
public void actionPerformed(ActionEvent e) //03
{ //04
xpos++; //05
repaint(); //06
} //07
} //08
//09
timer.start(); //10
为了提高速度,我可以将第5行上的xpos增量增加到xpos+=2
。
我还可以通过将计时器的毫秒参数减少到第1行上的:Timer timer = new Timer(50, new ActionListener()
来提高速度。
或者我可以添加第二个计时器,它将执行相同的任务,从而使计时器的速度加倍。
Mover mover = new Mover();
Timer timer = new Timer(100, mover);
Timer timer2 = new Timer(100, mover);
timer.start();
timer2.start();
class Mover implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
xpos++;
repaint();
}
}
你认为哪一个最有效?或者我应该将所有这些技术结合起来?感谢您的回复。
发布于 2013-05-20 10:34:10
保持定时器节拍稳定,invariant.
https://stackoverflow.com/questions/16641660
复制相似问题