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

📄 player.java

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

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

public class Player extends Sprite{

  private Resource resource=Resource.getResource();
  //企鹅所有的动作切片
  private Rectangle[][] actorRect=new Rectangle[2][6];
  //当前帧
  private int currAnimIndex;
  //企鹅在ACT_RUN状态下帧的变换速度
  private Time runAnimTime=new Time(160);
  //企鹅在ACT_RUN状态下帧的变换顺序
  private int[] runAnimOrder={1,0,2,0};
  private int runOrderIndex;

  private void init(){
    //面向左站立
    actorRect[0][0]=new Rectangle(0,4,15,16);
    //面向左走动作1
    actorRect[0][1]=new Rectangle(16,3,15,17);
    //面向左走动作2
    actorRect[0][2]=new Rectangle(32,3,19,17);
    //面向左起跳
    actorRect[0][3]=new Rectangle(52,0,15,20);
    //面向左下落
    actorRect[0][4]=new Rectangle(68,2,18,18);
    //面向左死
    actorRect[0][5]=new Rectangle(87,9,23,11);

    //面向右站立
    actorRect[1][0]=new Rectangle(0,25,15,16);
    //面向右走动作1
    actorRect[1][1]=new Rectangle(16,24,15,17);
    //面向右走动作2
    actorRect[1][2]=new Rectangle(32,24,19,17);
    //面向右起跳
    actorRect[1][3]=new Rectangle(52,21,15,20);
    //面向右下落
    actorRect[1][4]=new Rectangle(68,23,18,18);
    //面向右死
    actorRect[1][5]=new Rectangle(87,30,23,11);

    setWidth(15);
    setHeight(16);
  }
  public Player(){
    init();
  }
  public void paint(Graphics g,int offsetX,int offsetY){
    int x=getX();
    if(getFaceTo()==FACETO_LEFT)
      x=getX()+(getWidth()-actorRect[FACETO_LEFT][currAnimIndex].width);
    int y=getY()+(getHeight()-actorRect[getFaceTo()][currAnimIndex].height);
    switch(getAct()){
      case ACT_STAND:
        Toolkit.drawRegion(g,resource.imgActor,actorRect[getFaceTo()][currAnimIndex],
                           x+offsetX,y+offsetY);
        break;
      case ACT_RUN:
        Toolkit.drawRegion(g,resource.imgActor,actorRect[getFaceTo()][runAnimOrder[runOrderIndex]],
                           x+offsetX,y+offsetY);
        break;
      case ACT_JUMP:
        Toolkit.drawRegion(g,resource.imgActor,actorRect[getFaceTo()][currAnimIndex],
                           x+offsetX,y+offsetY);
        break;
      case ACT_DEAD:
        Toolkit.drawRegion(g,resource.imgActor,actorRect[getFaceTo()][currAnimIndex],
                           x+offsetX,y+offsetY);
        break;
    }
  }
  public void collideVertical(){
    setVelocityX(0);
    setVelocityY(0);
  }
  public void update(int elpasedTime){
    switch(getAct()){
      case ACT_STAND:
        currAnimIndex=0;
        break;
      case ACT_RUN:
        if(runAnimTime.update(elpasedTime)){
          runOrderIndex=(runOrderIndex+1)%4;
          currAnimIndex=runAnimOrder[runOrderIndex];
        }
        break;
      case ACT_JUMP:
        if(getVelocityY()<0)
          currAnimIndex=3;
        else
          currAnimIndex=4;
        break;
      case ACT_DEAD:
        currAnimIndex=5;
        break;
    }
  }
  public boolean isAlive(){
      return getAct()!=ACT_DEAD;
  }
  public void setAct(int act){
    super.setAct(act);
    if(act==ACT_DEAD){
      ((Game)getTilesEngine()).setState(Game.STATE_LOSE);
      setVelocityX(0);
      setVelocityY(0);
      if(resource.isMIPD2_0){
        resource.backMedia.stop();
        resource.loseMedia.play();
      }
      else{
        if(resource.sound) resource.loseSound.play(1);
      }

    }
  }
}

⌨️ 快捷键说明

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