嗨朋友,我正在嘗試編寫一個簡單的程序,它可以順利地向右,向左,向上和向下移動一個小方塊。在java小應用程序中使對象運動平滑
正因爲如此,廣場確實會在四個方向上移動,但當試圖改變廣場方向時存在明顯的延遲。我計劃最終編寫一個類似於「磚頭」遊戲的小遊戲,但爲了這樣做,我的對象必須順利移動。有人可以給我一些關於如何實現這一目標的建議嗎?
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
public class FutureGame extends Applet implements KeyListener{
int deltax;
int deltay;
public void init(){
deltax = 0;
deltay = 0;
this.addKeyListener(this);
}
@Override
public void keyPressed(KeyEvent ke) {
if(ke.getKeyCode() == ke.VK_RIGHT){
deltax = deltax +10;
}
if(ke.getKeyCode() == ke.VK_LEFT){
deltax = deltax - 10;
}
if(ke.getKeyCode() == ke.VK_UP){
deltay = deltay - 10;
}
if(ke.getKeyCode() == ke.VK_DOWN){
deltay = deltay +10;
}
this.repaint();
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void paint(Graphics g){
g.drawRect(deltax, deltay, 10, 10);
}
}
好吧,我會嘗試雙緩衝 – rage 2012-07-25 11:50:16
是你的線程等待15毫秒以下的時間? – 2012-07-25 11:51:41
我試過雙緩衝,它並沒有真正的幫助。我不確定你的意思是我的線程等待時間,我沒有任何明確的線程在程序中..你是否想在我的keypressed方法中添加一些Thread.sleep()? – rage 2012-07-25 11:54:16