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()就可以了。
内存不再紧张。呵呵。:-)
利用GameCanvas的offscreen_buffer
最新推荐文章于 2023-05-05 10:18:42 发布