canvasdemo1.java

来自「一本介绍手机游戏开发的书中的源代码」· Java 代码 · 共 85 行

JAVA
85
字号
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Random;

public class canvasDemo1 extends MIDlet
{
   Display display;
   canvasPaint canvaspaint;

   public canvasDemo1()
   {
      canvaspaint=new canvasPaint();
      display=Display.getDisplay(this);
   }

   public void startApp()
   {
      display.setCurrent(canvaspaint);
   }

   public void pauseApp(){}

   public void destroyApp(boolean unconditional){}

   class canvasPaint extends Canvas 
   {
      int     gameaction=0;
      int     watchPaint=0;
      int     x=0;
      int     y=0;
      int     width=0;
      int     height=0;
      Random  typeRand;
      boolean viewPaint;
      Image[] pictureImage;

      public canvasPaint()
      {
         try{
             pictureImage=new Image[]{
                  Image.createImage("/picture1.png"),
                  Image.createImage("/picture2.png"),
                  Image.createImage("/picture3.png")
             };
         }catch(Exception ex){} 
         typeRand=new Random();
      }
      
      public void keyPressed(int keyCode) 
      {
         gameaction=getGameAction(keyCode);
         switch(gameaction)
         {
            case LEFT:
                 viewPaint=false;
                 watchPaint--;
                 if(watchPaint<0) watchPaint=2;
                 repaint();
                 break;
            case RIGHT:
                 viewPaint=false;
                 watchPaint++;
                 if(watchPaint>2) watchPaint=0; 
                 repaint();
                 break; 
            case FIRE: 
                 viewPaint=true;                
                 x=(int)Math.abs(typeRand.nextInt()%180);
                 y=(int)Math.abs(typeRand.nextInt()%177);
                 width=(int)Math.abs(typeRand.nextInt()%(180-x));
                 height=(int)Math.abs(typeRand.nextInt()%(177-y));
                 repaint(x, y, width, height);                 
                 break;
          }
      }

      public void paint(Graphics g)
      { 
         g.setColor(0xFFFFFF);
         g.fillRect(0,0,getWidth(),getHeight());
         if(viewPaint)
            g.drawImage(pictureImage[watchPaint], 0, 0, Graphics.LEFT | Graphics.TOP);
      }
   }
}

⌨️ 快捷键说明

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