缓冲

2006-07-03 14:40:35 J2ME经验 Views(1231)

引:
1.在构造函数里面:
m_imgBuffer = Image.createImage(SCREEN_WIDTH, SCREEN_HEIGHT);
m_bufGraphics = m_imgBuffer.getGraphics();
创建图片,然后得到图片的Graphics.

2.在主循环,repaint()前面,绘制到缓冲区上
drawBg(m_bufGraphics);
...
repaint();
serviceRepaints();

3.在paint()里面,首先绘制缓冲区,每次都要绘制.
g.drawImage(m_imgBuffer, 0, 0, 0);
...

议:
对于不需要经常改动的背景来说,先把它们绘制到一张大图片里面,只绘制这张大图片.
背景发生了变化之后,重绘这个缓冲图片.

联:
1 实验: 文字绘制
2 实验: 图片绘制

次数----直接绘制文字----缓冲绘制文字----直接绘制图片----缓冲绘制图片
100-----16757-----------415-------------4705------------4060
1000----166908----------40125-----------47072-----------39939

结:
缓冲绘制提高效率的原因是减少了绘制次数,把N次的绘制只绘制一次.
如果只是简单的修改Graphics指针,是对绘制效率没有帮助的

Comments

Leave a Comment

Name
Content
Verification Type the characters you see in the picture below