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

📄 star_canvas.java

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

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

public class Star_Canvas
    extends GameCanvas
    implements Runnable {

  //声明一个代表运行状态的布尔型变量
  private boolean mTrucking;

  //声明一个代表图形放大、缩小变换速度的长整型变量
  private long mFrameDelay;

  //代表图形中心点坐标
  private int mX, mY;

  //控制图形线段长度和旋转
  private int mState;

  /*
   4.构造器
   */
  public Star_Canvas() {
    super(true);
    mX = getWidth() / 2;
    mY = getHeight() / 2;
    mState = 0;
    mFrameDelay = 20;
  }

  /*
   5.启动线程
   */
  public void start() {
    mTrucking = true;
    Thread t = new Thread(this);
    t.start();
  }

  /*
   6.停止线程
   */
  public void stop() {
    mTrucking = false;
  }

  /*
   7.实现线程run()方法
   */
  public void run() {
    Graphics g = getGraphics();

    while (mTrucking == true) {
      tick();
      input();
      render(g);
      try {
        Thread.sleep(mFrameDelay);
      }
      catch (InterruptedException ie) {
        stop();
      }
    }
  }

  /*
   8.设置图形线段长度/角度变化
   */
  private void tick() {
    mState = (mState + 1) % 30;
  }

  /*
   9.响应输入按键
   */
  private void input() {
    int keyStates = getKeyStates();
    if ( (keyStates & LEFT_PRESSED) != 0) {
      mX = Math.max(0, mX - 1);
    }
    if ( (keyStates & RIGHT_PRESSED) != 0) {
      mX = Math.min(getWidth(), mX + 1);
    }
    if ( (keyStates & UP_PRESSED) != 0) {
      mY = Math.max(0, mY - 1);
    }
    if ( (keyStates & DOWN_PRESSED) != 0) {
      mY = Math.min(getHeight(), mY + 1);
    }
  }

  /*
   10.绘制图形
   */
  private void render(Graphics g) {
    g.setColor(0xffffff);
    g.fillRect(0, 0, getWidth(), getHeight());

    g.setColor(0x0000ff);

    g.drawLine(mX, mY, mX - 10 + mState, mY - 10);
    g.drawLine(mX, mY, mX + 10, mY - 10 + mState);
    g.drawLine(mX, mY, mX + 10 - mState, mY + 10);
    g.drawLine(mX, mY, mX - 10, mY + 10 - mState);

    flushGraphics();
  }
}

⌨️ 快捷键说明

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