利用GameCanvas的offscreen_buffer

MIDP2.0增加了GameCanvas類,其中包含了一個offscreen_buffer,可以隨時調用flushGraphics()來把它畫到屏幕上,遊戲的結構也可以變得簡單一些。但是,爲了移植方便,大多數時候還是用的MIDP1.0的結構。

GameCanvas中是這樣定義的:
private Image offscreen_buffer;
我們無法得到這個Image的reference,但是可以通過GameCanvas.getGrahpics()來得到它的Graphics,這樣就可以往這個Image上畫圖了。接下來想辦法把這個Image畫的屏幕上就可以了。

GameCanvas的paint()函數如下:

public void paint(Graphics g) {
g.drawImage(offscreen_buffer, 0, 0, 20);
}

所以我們可以用這樣的方法來把Image畫到屏幕上:

Graphics buffer = getGraphics();
boolean buffered = false;
public void paint(Graphics g){
if( !buffered ){
paint_to_buffer(buffer);
buffered = true;
}
super.paint(g);

//畫其它的東東
}

如果不想畫到(0,0)或者只想畫一部分,用translate()和setClip()就可以了。

內存不再緊張。呵呵。:-)

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