Game action : Key Event « J2ME « Java Tutorial






Game action
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;

public class GameActionMIDlet extends MIDlet implements CommandListener {

  private Command exitCommand;

  Display display;

  Displayable d;

  public void startApp() {
    Display display = Display.getDisplay(this);

    d = new GameActionCanvas();
    exitCommand = new Command("Exit", Command.EXIT, 1);

    d.addCommand(exitCommand);
    d.setCommandListener(this);

    display.setCurrent(d);
  }

  public void pauseApp() {
  }

  public void destroyApp(boolean unconditional) {
  }

  public void commandAction(Command c, Displayable s) {
    notifyDestroyed();
  }

}

class GameActionCanvas extends Canvas {

  int width = 0;

  int height = 0;

  String aMessage = "message";

  public void paint(Graphics g) {
    width = getWidth();
    height = getHeight();

    g.setGrayScale(255);
    g.fillRect(0, 0, width - 1, height - 1);
    g.setGrayScale(0);
    g.drawRect(0, 0, width - 1, height - 1);

    g.drawString(aMessage, 10, 10, Graphics.TOP | Graphics.LEFT);
  }

  protected void keyPressed(int keyCode) {
    int gameAction = getGameAction(keyCode);
    switch (gameAction) {
    case UP:
      aMessage = "Up";
      break;
    case DOWN:
      aMessage = "Down";
      break;
    case LEFT:
      aMessage = "Left";
      break;
    case RIGHT:
      aMessage = "Right";
      break;
    case FIRE:
      aMessage = "Send";
      break;
    case GAME_A:
      aMessage = "GAME_A";
      break;
    case GAME_B:
      aMessage = "GAME_B";
      break;
    case GAME_C:
      aMessage = "GAME_C";
      break;
    case GAME_D:
      aMessage = "GAME_D";
      break;
    default:
      aMessage = "";
      break;
    }
    repaint();
  }

}








31.19.Key Event
31.19.1.Canvas key events
31.19.2.Check the key eventCheck the key event
31.19.3.Get key code
31.19.4.Game actionGame action