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

📄 xcanvas.java

📁 初学者的佳音 初学者的佳音 初学者的佳音 初学者的佳音 初学者的佳音
💻 JAVA
字号:
package lib;

import com.nokia.mid.ui.*;

public abstract class XCanvas extends FullCanvas implements Runnable{

  public static final int WIDTH=176;
  public static final int HEIGHT=208;
  public static final int KEY_UP=KEY_UP_ARROW;
  public static final int KEY_DOWN=KEY_DOWN_ARROW;
  public static final int KEY_LEFT=KEY_LEFT_ARROW;
  public static final int KEY_RIGHT=KEY_RIGHT_ARROW;
  public static final int KEY_SOFT1=KEY_SOFTKEY1;
  public static final int KEY_SOFT2=KEY_SOFTKEY2;

  //记录 上,下,左,右,2,8,4,6 的按键状态
  static boolean[] keyStates=new boolean[8];

  public boolean stop;

  public XCanvas(){
  }
  protected void showNotify(){
    for(int i=0;i<keyStates.length;i++) keyStates[i]=false;
  }
  protected void hideNotfiy(){
    for(int i=0;i<keyStates.length;i++) keyStates[i]=false;
  }
  public void run(){
    long currTime=System.currentTimeMillis();
    long elapsedTime=0;

    while(true){
      if(stop) return;
      repaint();
      update(40);
      try{
        elapsedTime=System.currentTimeMillis()-currTime;
        currTime+=elapsedTime;
        if((70-elapsedTime)<=0)
          continue;
        else
          Thread.sleep(70-elapsedTime);
      }catch(Exception e){}
    }
  }
  public static boolean getKeyStates(int keyCode){
    switch(keyCode){
      case KEY_UP:
        return keyStates[0];
      case KEY_DOWN:
        return keyStates[1];
      case KEY_LEFT:
        return keyStates[2];
      case KEY_RIGHT:
        return keyStates[3];
      case KEY_NUM2:
        return keyStates[4];
      case KEY_NUM8:
        return keyStates[5];
      case KEY_NUM4:
        return keyStates[6];
      case KEY_NUM6:
        return keyStates[7];
      default:
        return false;
    }
  }
  protected void keyPressed(int keyCode){
    for(int i=0;i<keyStates.length;i++) keyStates[i]=false;
    switch(keyCode){
      case KEY_UP:
        keyStates[0]=true;
        break;
      case KEY_DOWN:
        keyStates[1]=true;
        break;
      case KEY_LEFT:
        keyStates[2]=true;
        break;
      case KEY_RIGHT:
        keyStates[3]=true;
        break;
      case KEY_NUM2:
        keyStates[4]=true;
        break;
      case KEY_NUM8:
        keyStates[5]=true;
        break;
      case KEY_NUM4:
        keyStates[6]=true;
        break;
      case KEY_NUM6:
        keyStates[7]=true;
        break;
    }
  }
  protected void keyReleased(int keyCode){
    for(int i=0;i<keyStates.length;i++) keyStates[i]=false;
  }

  protected abstract void update(int elapsedTime);

}

⌨️ 快捷键说明

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