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

📄 bosstiger.java

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

import lib.*;
import javax.microedition.lcdui.*;

//老虎
public class BossTiger extends Sprite{

  private Resource resource=Resource.getResource();
  //老虎所有的动作切片
  private static Rectangle[][] tigerRect=new Rectangle[2][4];
  static{
    //面向左走1
    tigerRect[0][0]=new Rectangle(0,2,45,33);
    //面向左走2
    tigerRect[0][1]=new Rectangle(46,0,45,35);
    //面向左走3
    tigerRect[0][2]=new Rectangle(92,2,45,33);
    //面向左死
    tigerRect[0][3]=new Rectangle(138,2,45,33);
    //面向右走1
    tigerRect[1][0]=new Rectangle(0,38,45,33);
    //面向右走2
    tigerRect[1][1]=new Rectangle(46,36,45,35);
    //面向右走3
    tigerRect[1][2]=new Rectangle(92,38,45,33);
    //面向右死
    tigerRect[1][3]=new Rectangle(138,38,45,33);
  }
  private int currAnimIndex;
  private boolean needRemove;
  private int num;
  private int life=10;
  //老虎在ACT_RUN状态下帧的变换顺序
  private int[] runAnimOrder={0,2,0,2};
  private int runOrderIndex;
  private Time animTime=new Time(280);
  private Time deadTime=new Time(280);

  public BossTiger(int x,int y,int faceTo,int num){
    this.x=x;
    this.y=y;
    this.width=45;
    this.height=33;
    this.faceTo=faceTo;
    this.num=num;
    vx=(faceTo==0?-1:1);
    setAct(ACT_RUN);
  }
  public void paint(Graphics g,int offsetX,int offsetY){
    switch(getAct()){
      case ACT_RUN:
      {
        int ox=x;
        if(faceTo==FACETO_RIGHT)
          ox=x+(width-tigerRect[FACETO_RIGHT][runAnimOrder[runOrderIndex]].width);
        int oy=y+(height-tigerRect[faceTo][runAnimOrder[runOrderIndex]].height);
        Toolkit.drawRegion(g,resource.imgTiger,tigerRect[faceTo][runAnimOrder[runOrderIndex]],ox+offsetX,oy+offsetY);
      }
        break;
      case ACT_DEAD:
      {
        int ox=x;
        if(faceTo==FACETO_RIGHT)
          ox=x+(width-tigerRect[FACETO_RIGHT][currAnimIndex].width);
        int oy=y+(height-tigerRect[faceTo][currAnimIndex].height);
        Toolkit.drawRegion(g,resource.imgTiger,tigerRect[faceTo][currAnimIndex],ox+offsetX,oy+offsetY);
      }
        break;
    }
  }
  public void update(int elapsedTime){
    switch(getAct()){
      case ACT_RUN:
        if(animTime.update(elapsedTime)){
          runOrderIndex=(runOrderIndex+1)%4;
        }
        break;
      case ACT_DEAD:
        if(deadTime.update(elapsedTime)){
          needRemove=true;
        }
        break;
    }
  }
  public void collideHorizontal(){
    vx=-vx;
    faceTo=(vx==-1?FACETO_LEFT:FACETO_RIGHT);
  }
  public boolean isAlive(){
    return getAct()!=ACT_DEAD;
  }
  public void setAct(int act){
    super.setAct(act);
    if(act==ACT_DEAD){
      currAnimIndex=3;
    }
  }
  public boolean isNeedRemove(){
    return needRemove;
  }
  public int removeLife(){
    life--;
    return life;
  }
  public int getLife(){
    return life;
  }
  public int getNum(){
    return num;
  }
}

⌨️ 快捷键说明

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