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

📄 page230canvas.java~26~

📁 自己用MIDP2。0编的一个游戏渐显效果。
💻 JAVA~26~
字号:
package page230;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.util.*;



public class page230Canvas extends Canvas implements CommandListener {
  private int[] pixelArray;
  private Image image = null;
  private int pixelArraySize, displayWidth, displayHeight, randomPixel;
  private Command cmdExit;
  private Random random;
  private Timer tm;
  private TimerTask tt;
  private boolean initComplete = false;
  page230MIDlet midlet;

  public page230Canvas(page230MIDlet midlet) {
    this.midlet = midlet;
    cmdExit = new Command("exit", Command.EXIT, 0);
    addCommand(cmdExit);
    setCommandListener(this);
    displayWidth = this.getWidth();
    displayHeight = this.getHeight();
    pixelArraySize = displayWidth * displayWidth;
    random = new java.util.Random();
    try {
      image = Image.createImage("/page230/2.png");
    }
    catch (java.io.IOException e) {
      System.out.println("no picture");
    }
    createBox();
    tm = new Timer();
    tt = new DrawTask();
    tm.scheduleAtFixedRate(tt, 0, 1);
  }


  private void createBox() {//产生随机色覆盖背景图。
    int red, green, blue, alpha;
    long tmp;
    if (pixelArray == null) {
      pixelArray = new int[pixelArraySize];
      red = (random.nextInt()) % 256;
      green = (random.nextInt() ) % 256;
      blue = (random.nextInt()) % 256;
      alpha = 0xff;
      tmp = (alpha << 24) | (red << 16) | (green << 8) | blue;
      for (int i = 0; i < pixelArraySize; i++)
        pixelArray[i] = (int) tmp;
    }

  }

  private void updateDisplay() {
    randomPixel = (random.nextInt() >>> 1) % (pixelArraySize);
    for (int i = randomPixel, j = 0; j <100 && i < (pixelArraySize); j++, i++)
      pixelArray[i] = 0x00000000;//设成透明色
  }

  private class DrawTask
      extends TimerTask {
    public final void run() {
      updateDisplay();
      repaint();
    }
  }

  public void commandAction(Command command, Displayable displayable) {
    if (command == cmdExit) {
      midlet.exitMIDlet();

    }
  }

  protected void keyPressed(int keyCode) {
   // 色值全清空。
    tt.cancel();
    for (int i = 0; i < (pixelArraySize); i++)
      pixelArray[i] = 0x00000000;
    repaint();
  }

  protected void paint(Graphics g) {

      g.setColor(0,255,0);
       g.fillRect(0, 0, this.displayWidth, this.displayHeight);
    if(image != null)
      g.drawImage(image, getWidth()/2,getHeight()/2,g.VCENTER|g.HCENTER);
      g.drawRGB(pixelArray,0,getWidth(),0,0,getWidth(),getHeight(),true);
  }
}

⌨️ 快捷键说明

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