网站大量收购独家精品文档,联系QQ:2885784924

J2ME手机游戏开发技巧.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J2ME J2ME JJ22MMEE手机游戏开发技巧 双缓冲技术是编写J2ME 游戏程序的关键技术之一。实际上,双缓冲技术是计算机动画 的一项传统技术。造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它... 不久前我曾用J2ME 开发了一个MotoT720下的彩色游戏—宝石方块(GridOne)。开发 过程中积累了一些经验,现在写出来与大家分享。 使用双缓冲避免屏幕闪烁 双缓冲技术是编写J2ME 游戏程序的关键技术之一。实际上,双缓冲技术是计算机动画 的一项传统技术。造成屏幕闪烁的主要原因在于,画面在显示的同时,程序又在改变它,于 是画面闪烁。解决办法就是在内存中开辟一片区域作为后台画面,程序对它更新,修改,完 成后再显示它。这样被显示的图像永远是已经完全画好的图像,程序修改的将不是正在被显 示的图像。当然还有其它方法可以解决屏幕闪烁问题,但使用双缓冲技术是一种值得推荐的 解决方案。具体方法可参见如下代码: public class BlocksCanvas extends Canvas implements Runnable { Graphics bg;Image buf;public BlocksCanvas() {height = getHeight(); width = getWidth(); //按屏幕大小建立缓冲对象 buf = Image.createImage(width, height); //将缓冲对象的Graphics 附给bgbg = buf.getGraphics(); } public void run() { for(i=0;i{for(j=0; j {//画方块drawBlock(x,y);}} repaint();}private void drawBlock(int block_x, int block_y) { //取得方块的坐标 int x = getLeft(block_x);int y = getTop(block_y); //取得方块的颜色 int c= board[block_x][block_y]; bg.drawImage(imgs[c], x, y, Graphics.TOP Graphics.LEFT); } public void paint(Graphics g) { g.drawImage(buf, 0, 0, Graphics.TOP Graphics.LEFT); }} 由上面代码可见,双缓冲思想体现在程序上就是要依次完成以下几步工作: 1.定义一个Graphics 对象bg 和一个Image 对象buf,按屏幕大小建立一个缓冲对 象附给buf,然后取得buf 的Graphics 对象附给bg。在这里,Graphics 对象可以理解为 缓冲的屏幕,Image 对象则可当成缓冲屏幕上的图片。 2.在bg(缓冲屏幕)上用drawImage()和drawString 等语句画图,相当于在缓冲 屏幕上画图。 3.调用repaint()语句,它的功能是告知系统调用paint()来完成真实屏幕的显示。这 里需要注意的是,paint()是一个系统调用语句,不能手工调用,只能通过paint()语句来调 用。 4.在paint(Graphics g)函数里,将buf(缓冲屏幕上的图片)画到真实屏幕上。 以上的步骤虽然看似繁琐,但是效果还是很不错的。如果想要在屏幕上显示什么东西, 只管画在 上,然后调用 将其显示出来就可以了。 编写自己的断点函数。 bg

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档