3
我正在用Java製作一個2D平臺,並且我使用了一個Swing定時器,它被設置爲5毫秒間隔。但是,有時它會以很快的速度平穩運動,但隨後它會變得超快速,有時甚至會超慢。這可能是什麼原因?Java Swing定時器的速度不同
代碼:
public Board() {
addKeyListener(new KeyListener());
setFocusable(true);
setBackground(new Color(204,250,255));
//draws the object off the screen in memory, then brings it in
setDoubleBuffered(true);
...(other code not relevant)...
timer = new Timer(5, this);
timer.start();
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
//draw platform
for(int i = 0; i < platform.length; i++) {
//g2d.setColor(new Color(0,0,0));
//g2d.drawRect(platform[i].getX(), platform[i].getY(), platform[i].getWidth(), platform[i].getHeight());
g2d.drawImage(platform[i].getImage(), platform[i].getX(), platform[i].getY(), this);
}
//draw guy
g2d.drawImage(guy.getImage(), guy.getX(), guy.getY(), this);
//destroy unneeded process
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
基本上,循環功能決定字符是否需要移動或沒有,如果它移動它。
*「這可能是什麼原因?」*您選擇不包含的代碼?爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –
非常抱歉,我的代碼只是一個簡單的搖擺計時器,我更新了我的第一篇文章 – Qasim
我沒有建議你發佈'代碼',而是'SSCCE'。請閱讀鏈接,以免浪費你的時間,更重要的是,我的。 –