2014-06-16 82 views
0

我有以下類(片段),在我的render()方法中,我正在使用BufferStrategy進行緩衝。我遇到的問題是當我移動圖像時,它留下一個尾巴。Java遊戲圖像緩衝葉尾

Example with tail

我需要什麼,我的代碼做才能讓這麼尾不顯示?下面是代碼:

public class Main extends JFrame implements Runnable{ 

    private BufferStrategy bufferStrategy; 

    public synchronized void start(){ 
     Thread thread = new Thread(this); 
     thread.start(); 
    } 

    public void run(){ 
     // Main Game Loop 
     this.render(); 
     // End Main Game Loop 
    } 

    protected void render(){ 
     if(bufferStrategy == null){ 
      this.createBufferStrategy(3); 
      bufferStrategy = this.getBufferStrategy(); 
     } 
     Graphics g = bufferStrategy.getDrawGraphics(); 
     // Loop through a list of items to draw 
     for(GameObject go : gameObjects){ 
      Image sprite = go.getComponent(SpriteRenderer.class).getSprite(); 
      Vector2 pos = go.getComponent(Transform.class).getPosition(); 
      g.drawImage(sprite, (int)pos.x, (int)pos.y, this); 
     } 
     g.dispose(); 
     bufferStrategy.show(); 
     Toolkit.getDefaultToolkit().sync(); 
    } 
} 

編輯

我想通了:

Graphics g = bufferStrategy.getDrawGraphics(); 
super.paint(g); 

回答

1

需要刷新每個車輪運動時間和塗裝前重新繪製Canvas黑色車輪再次定位。