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

📄 foreinbackgrount_canvas.java

📁 本光盘是《J2ME无线移动游戏开发》一书的配套光盘
💻 JAVA
字号:
package ch06;

import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class ForeInBackgrount_Canvas
    extends GameCanvas {
  Graphics g = getGraphics();

  //变量w和h为模拟器的当前屏幕宽度和高度
  int w = getWidth();
  int h = getHeight();

  public ForeInBackgrount_Canvas() throws IOException {
    //支持按键事件
    super(false);
  }

  //启动绘制
  public void start() {
    render(g);
  }

  //实现具体绘制
  void render(Graphics g) {
    //装载图片
    try {
      Image im = Image.createImage("/icons/background/girl02.png");
      g.drawImage(im, 0, 0, Graphics.LEFT | Graphics.TOP);
    }
    catch (Exception e) {
      System.out.println(e.toString());
    }

    // 创建一个存储前景色图像数组
    int ballWidth = 10, ballHeight = 10;
    int rgbData[] = new int[ballWidth * ballWidth];
    if (rgbData == null) {
      rgbData = new int[ballWidth * ballHeight];
    }

    /*
     3.创建设置图像数据和透明化处理
     */

    //创建数组第一行数据
    int i = 0;
    int j = 0;
    for (; i < ballWidth; i++) {
      rgbData[i] = 0x00000000; //黑色、透明
    }

    //创建数组第二行数据
    for (j = 0; j < 3; i++, j++) {
      rgbData[i] = 0x00000000; // 黑色、透明
    }
    rgbData[i++] = 0xffff0000; // 255, 0, 0
    rgbData[i++] = 0xffd30000; // 211, 0, 0
    rgbData[i++] = 0xffff0000; // 255, 0, 0
    rgbData[i++] = 0xffdb0000; // 219, 0, 0
    rgbData[i++] = 0xff870000; // 135, 0, 0
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0x00000000; // 黑色、透明

    //创建数组第三行数据
    for (j = 0; j < 2; i++, j++) { // 黑色、透明
      rgbData[i] = 0x00000000;
    }
    rgbData[i++] = 0xffc30000; // 195, 0, 0
    for (j = 0; j < 6; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0x00000000; // 黑色、透明

    //创建数组第四行数据
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0xff800000; // 128, 0, 0
    for (j = 0; j < 7; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0xff870000; // 135, 0, 0

    //创建数组第五行数据
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0xffd30000; // 211, 0, 0
    for (j = 0; j < 7; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0xffdb0000; // 219, 0, 0

    //创建数组第六行数据
    rgbData[i++] = 0x00000000; // 黑色、透明
    for (j = 0; j < 9; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;

      //创建数组第七行数据
    }
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0xffd30000; // 211, 0, 0
    for (j = 0; j < 7; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0xffdb0000; // 219, 0, 0

    //创建数组第八行数据
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0xff800000; // 128, 0, 0
    for (j = 0; j < 7; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0xff870000; // 135, 0, 0

    //创建数组第九行数据
    for (j = 0; j < 2; i++, j++) { // 黑色、透明
      rgbData[i] = 0x00000000;
    }
    rgbData[i++] = 0xffc30000; // 195, 0, 0
    for (j = 0; j < 6; i++, j++) { // 255, 0, 0
      rgbData[i] = 0xffff0000;
    }
    rgbData[i++] = 0x00000000; // 黑色、透明

    //创建数组第十行数据
    for (j = 0; j < 3; i++, j++) {
      rgbData[i] = 0x00000000; // 黑色、透明
    }
    rgbData[i++] = 0xffff0000; // 255, 0, 0
    rgbData[i++] = 0xffd30000; // 211, 0, 0
    rgbData[i++] = 0xffff0000; // 255, 0, 0
    rgbData[i++] = 0xffdb0000; // 219, 0, 0
    rgbData[i++] = 0xff870000; // 135, 0, 0
    rgbData[i++] = 0x00000000; // 黑色、透明
    rgbData[i++] = 0x00000000; // 黑色、透明

    //绘制图像
    int ballX = 82, ballY = 62;
    g.drawRGB(rgbData, 0, ballWidth, ballX, ballY, ballWidth, ballHeight, true);

    //刷新缓存,输出图像
    flushGraphics();
  }
}

⌨️ 快捷键说明

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