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

📄 grass_canvas.java

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

import java.util.Random;
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class Grass_Canvas
    extends GameCanvas
    implements CommandListener {

  //存储构成背景的各图像帧
  Image img;

  //代表背景
  TiledLayer tlg;

  //屏幕宽度
  int win_width = getWidth();

  //屏幕高度
  int win_height = getHeight();

  //每帧草图像的宽高
  int img_grass_size = 16;

  //背景行、列数
  int backcols, backrows;

  //绘制上下文
  Graphics g = getGraphics();

  //产生随机数
  Random r = new Random();

  //主MIDlet类实例
  Grass_MIDlet gm;

  /*
   3.构造器
   */
  public Grass_Canvas(Grass_MIDlet gm) {
    super(true);
    this.gm = gm;
    Command exitCommand = new Command("退出", Command.EXIT, 0);
    addCommand(exitCommand);
    setCommandListener(this);

    try {
      img = Image.createImage("/icons/background/field0.png");
    }
    catch (IOException e) {
      System.out.println(e.getMessage());
    }

    // 计算横向需要多少图片
    backcols = win_width / img_grass_size + 1;
    // 计算纵向需要多少图片
    backrows = win_height / img_grass_size + 1;
    //铺草地
    tlg = new TiledLayer(backcols, backrows, img, img_grass_size,
                         img_grass_size);
    for (int i = 0; i < backcols * backrows; i++) {
      int n = (r.nextInt() >>> 1) % 5 + 1;
      tlg.setCell(i % backcols, i / backcols, n);
    }

    //铺栅栏
    //铺外上栅栏
    for (int i = 0; i < backcols; i++) {
      tlg.setCell(i, 0, 6);
    }
    //铺外下栅栏
    for (int i = 0; i < backcols; i++) {
      tlg.setCell(i, backrows - 2, 6);
      tlg.setCell(i, backrows - 1, 6);
    }
    //铺外左栅栏
    for (int i = 0; i < backrows; i++) {
      tlg.setCell(0, i, 6);
    }
    //铺外右栅栏
    for (int i = 0; i < backrows; i++) {
      tlg.setCell(backcols - 2, i, 6);
      tlg.setCell(backcols - 1, i, 6);
    }
    tlg.paint(g);
  }

  /*
   4.响应按钮事件
   */
  public void commandAction(Command c, Displayable s) {
    if (c.getCommandType() == Command.EXIT) {
      gm.quitApp();
    }
  }

}

⌨️ 快捷键说明

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