J2ME游戏开发技巧

http://tech.ddvip.com   2006年07月17日    社区交流

本文详细介绍J2ME游戏开发技巧

  由上面代码可见,双缓冲思想体现在程序上就是要依次完成以下几步工作:

  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上,然后调用repaint()将其显示出来就可以了。

  编写自己的断点函数

  图1 断点测试

  在开发J2ME程序过程中,最困扰人的问题就是程序容易莫名其妙地死机。当使用JBuilder或者CodeWarrior设置断点功能来查找程序错误时,死机的概率就更大了。即使不死机,也会担心程序受到了意外的干扰,所以一般不推荐使用开发工具自带的断点功能。但有时候又需要一个功能来显示当前各变量的值,以便查错时做出正确的判断。于是我想了一个办法,就是编写自己的断点函数。具体代码如下:

  public class BlocksCanvas extends Canvas implements Runnable
{
 private boolean stopFlag=false;//调试标志
 ......
 public void run()
 {
 //断点位置1
 testFun(“x:”+x+“y:”+y);
 ......
 //断点位置2
 testFun(“”);
 ......
 }
 private void testFun(String str)
 { 
 stopFlag=true;
 //画一个白色长方形
 bg.setGrayScale(255);
 bg.fillRect(0,0, fontW, fontH);
 //在白色长方形上显示str的内容
 bg.setGrayScale(0);
 bg.drawString(str, 0,0, Graphics.TOP | Graphics.LEFT);
 repaint();
 while(stopFlag){}
 }
public void keyPressed(int keyCode)
 { 
 stopFlag=false;
 }
}

责编:豆豆技术应用

正在加载评论...