midp2event_canvas.java

来自「本光盘是《J2ME无线移动游戏开发》一书的配套光盘」· Java 代码 · 共 69 行

JAVA
69
字号
package ch04;

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

public class MIDP2Event_Canvas
    extends GameCanvas {

  //声明一个代表屏幕宽度的int型属性变量
  private int width;

  //声明一个代表屏幕高度的int型属性变量
  private int height;

  //声明一个代表按键信息的变量
  String text = "MIDP2.0游戏按键测试";

  //构造器
  MIDP2Event_Canvas() {
    //支持键盘事件
    super(false);
    //获取屏幕宽度和高度
    width = getWidth();
    height = getHeight();
  }

  /*
   3.实现paint()方法
   */
  public void paint(Graphics g) {
    g.setColor(0xffffff);
    g.fillRect(0, 0, width, height);
    g.setColor(0x000000);
    g.drawString(text, 0, height / 2, Graphics.LEFT | Graphics.TOP);
  }

  /*
   4.响应按键事件
   */
  protected void keyPressed(int keyCode) {
    int keyState = getKeyStates();
    if ( (keyState & LEFT_PRESSED) != 0) {
      text = "您点击了向左方向键←!";
    }
    if ( (keyState & RIGHT_PRESSED) != 0) {
      text = "您点击了向右方向键→!";
    }
    if ( (keyState & UP_PRESSED) != 0) {
      text = "您点击了向上方向键↑!";
    }
    if ( (keyState & DOWN_PRESSED) != 0) {
      text = "您点击了向下方向键↓!";
    }
    if ( (keyState & LEFT_PRESSED) != 0 && (keyState & UP_PRESSED) != 0) {
      text = "您点击了向左上方向键↖!";
    }
    if ( (keyState & LEFT_PRESSED) != 0 && (keyState & DOWN_PRESSED) != 0) {
      text = "您点击了向左下方向键↙!";
    }
    if ( (keyState & RIGHT_PRESSED) != 0 && (keyState & UP_PRESSED) != 0) {
      text = "您点击了向右上方向键↗!";
    }
    if ( (keyState & RIGHT_PRESSED) != 0 && (keyState & DOWN_PRESSED) != 0) {
      text = "您点击了向右下方向键↘!";
    }
    repaint();
  }
}

⌨️ 快捷键说明

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