用雙緩衝消除畫面抖動

 cldc2.0 中GameCanvas已經實現了雙緩衝功能,而1.0並沒有,在1.0下,可以用下列方面自己實現雙緩衝

代碼如下:

private Image image;
private Graphics bg;
public void update(Graphics g){
     if(image == null){
         image =createImage(getSize().width,getSize().height);
         bg =image.getGraphics();
    }
    //
         此處用bg進行各種繪製動作如bg.drawString, bg.drawLine...
    //
     g.drawImage(image,0,0,this);
}


該段代碼的原理:

 1.建立一個Image對象image,通過image=createrImage(int width,int height)來在內存中開闢一個長爲width 寬爲heithr空間.次空間的大小可以和你動畫窗口的大小保持一致,也可以利用getwidth()和getheight()來獲得動畫窗口的大小.

 2.建立一個Graphics 對象bg通過bg=image.getGraphics();去把要繪製的對象存放到分配好的內存空間中.

 3.利用各種繪製操作,將其全部繪製到內存之中,最後調用我門的paint(Graphics g)方法中的g.drawImage(image,0,0,this)將image全部一次性的繪製到我門的動畫窗口

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章