好学IT学院:IT信息技术分享交流平台
标签:Java  来源:希赛网  作者:佚名  发布时间:2008-12-26  ★★★加入收藏〗〖手机版
J2ME手机游戏:Canvas类基本绘图实例
摘要:Java2MicroEdition(J2ME)是一种针对移动电话和PDA这样的小型设备的Java语言。大部分厂商都迫切希望Java手机推广应用。上千万的Java手机已经到了消费者的手中。J2ME与台式机中的Java相比还是有很大的限制,但是它已经极大的提高了移…

Java 2 Micro Edition (J2ME)是一种针对移动电话和PDA这样的小型设备的Java语言。大部分厂商都迫切希望Java手机推广应用。上千万的Java手机已经到了消费者的手中。J2ME与台式机中的Java相比还是有很大的限制,但是它已经极大的提高了移动电话支持游戏的能力。它有比SMS或WAP更好控制的界面,允许使用子图形动画,并且可以通过无线网络连接到远程服务器。支持Java的手机的普及,所以它成为目前最好的移动游戏开发环境。J2ME不是手机上配置的唯一的解释语言,但是它是一个许多厂商支持的行业标准。

下面是一段利用Canvas类实现基本绘图功能的参考源代码:

/*
    几何形状图片绘制
  */
  import javax.microedition.midlet.;
  import javax.microedition.lcdui.;
  public class canvasDemo4 extends MIDlet implements CommandListener
  {
     Display display;
     //声明List清单
     List  list;
     //声明查询选择清单指针变量
     int   viewType;
     Command okCommand;
     Command exitCommand;
     canvasDraw canvasdraw;
     public canvasDemo4()
     {
        canvasdraw=new canvasDraw();
        display=Display.getDisplay(this);
        list=new List("线条几何形状绘制清单", List.IMPLICIT);
        okCommand = new Command("确认", Command.OK, 2);
        exitCommand = new Command("离开", Command.EXIT, 2);
        list.append("绘制线条", null);
        list.append("绘制矩形", null);
        list.append("绘制圆角矩形", null);
        list.append("绘制弧形", null);
        list.append("绘制三角形", null);
        list.addCommand(okCommand);
        list.addCommand(exitCommand);
        list.setCommandListener(this);
     }
     public void startApp()
     {
        display.setCurrent(list);
     }
     public void pauseApp(){}
     public void destroyApp(boolean unconditional){}
     public void commandAction(Command cmd, Displayable disp)
     {
        //取得清单选取的list项目
        viewType=list.getSelectedIndex();
        if (cmd == okCommand)
        {
           display.setCurrent(canvasdraw);
        }
         else if(cmd == exitCommand){
           destroyApp(false);
           notifyDestroyed();
        }
     }
     class canvasDraw extends Canvas implements CommandListener
     {
        int  gameaction=0;
        Image  handImage;
        int  changeSD=1;
        int  changeFull=0;
        Command backCommand;
        public canvasDraw()
        {
           try{
               handImage=Image.createImage("/hand.png");
           }catch(Exception ex){}
           backCommand = new Command("返回", Command.BACK, 1);
           addCommand(backCommand);
           setCommandListener(this);
        }