⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 canvasdemo4.java

📁 一本介绍手机游戏开发的书中的源代码
💻 JAVA
字号:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class canvasDemo4 extends MIDlet implements CommandListener
{
   Display display;
   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)
   {
      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);
      }
      
      public void keyPressed(int keyCode) 
      {
         gameaction=getGameAction(keyCode);
         switch(gameaction)
         {
            case LEFT:
                 changeSD=1;
                 break;
            case RIGHT: 
                 changeSD=3;
                 break; 
            case UP:
                 changeFull=0;
                 break;
            case DOWN: 
                 changeFull=1;
                 break; 
         }
         repaint();
      }

      public void paint(Graphics g)
      {
         g.setColor(0xffffff);
         g.fillRect(0,0,getWidth(),getHeight());
         g.setColor(0);
         if(changeSD==1)
            g.setStrokeStyle(Graphics.SOLID);
         else
            g.setStrokeStyle(Graphics.DOTTED);
         if(viewType==0)
         {
            g.drawString("绘制线条", getWidth()/2, 5, Graphics.HCENTER | Graphics.TOP);
            g.drawLine(getWidth()/4,100,3*getWidth()/4,100);
         }
          else if(viewType==1){
            g.drawString("绘制矩形", getWidth()/2, 5, Graphics.HCENTER | Graphics.TOP);
            if(changeFull==0)
               g.drawRect(getWidth()/4,100,getWidth()/2,40);
            else
               g.fillRect(getWidth()/4,100,getWidth()/2,40);
         }
          else if(viewType==2){
            g.drawString("绘制圆角矩形", getWidth()/2, 5, Graphics.HCENTER | Graphics.TOP);
            if(changeFull==0)
              g.drawRoundRect(getWidth()/4,100,getWidth()/2,40,30,40);
            else
              g.fillRoundRect(getWidth()/4,100,getWidth()/2,40,30,40);
         }
          else if(viewType==3){
            g.drawString("绘制弧形", getWidth()/2, 5, Graphics.HCENTER | Graphics.TOP);
            if(changeFull==0)
              g.drawArc(getWidth()/3,100,40,50,0,150);
            else
              g.fillArc(getWidth()/3,100,40,50,0,150);
         }
          else {
            g.drawString("绘制三角形", getWidth()/2, 5, Graphics.HCENTER | Graphics.TOP);
            g.fillTriangle(50,80,80,60,100,120);
         }
         if(viewType!=4) 
         {
           g.drawString("实线", getWidth()/4, 50, Graphics.HCENTER | Graphics.TOP);
           g.drawString("虚线", 3*getWidth()/4, 50, Graphics.HCENTER | Graphics.TOP);
           g.drawImage(handImage, changeSD*getWidth()/4, 60, Graphics.HCENTER | Graphics.TOP);
         } 
         if(viewType!=0 && viewType!=4)
         {
           g.drawString("几何形状", getWidth()/2, 30, Graphics.HCENTER | Graphics.TOP);
           g.drawString("填充几何形状", getWidth()/2, 70, Graphics.HCENTER | Graphics.TOP);
           g.drawImage(handImage, getWidth()/2, 40+changeFull*40, Graphics.HCENTER | Graphics.TOP);
         }
     }

     public void commandAction(Command cmd, Displayable disp)
     {
         if (cmd == backCommand)
            display.setCurrent(list);
     } 
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -