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

📄 actor.java

📁 j2me游戏引擎 j2me游戏引擎
💻 JAVA
字号:
package cn.org.matrix.gmatrix.gameLab.elements.biology;

import java.util.Vector;
import cn.org.matrix.gmatrix.gameLab.util.StringExtension;
import cn.org.matrix.gmatrix.gameLab.elements.property.*;
import cn.org.matrix.gmatrix.gameLab.engine.GameModel;
import cn.org.matrix.gmatrix.gameLab.util.Movement;

/**
 * 主角类-继承动物类的特点
 * @author cleverpig
 *
 */
public class Actor extends Animal{
	//道具箱
	private PropertyManager propBox=null;
	//游戏模式
	private GameModel gameModel=null;
	//帧切换数组,对应着主角的上、下、左、右四个方向的帧图片
	private int[] frameSwtichSequence=null;
	
	public Actor(){
		super();
		gameModel=new GameModel();
		gameModel.setModelType(GameModel.FREEMOVE_MODEL);
	}
	
	/**
	 * 重载父类的loadProperties,读取帧切换序列
	 */
	public void loadProperties(Vector v){
		super.loadProperties(v);
//		System.out.println("FrameSequenceLength="+this.getAnimator().getFrameSequenceLength());
		Object[] objArray=StringExtension.split(new StringBuffer((String)v.elementAt(14)),
				",",StringExtension.INTEGER_ARRAY,false);
		if (objArray!=null){
			frameSwtichSequence=StringExtension.objectArrayBatchToIntArray(objArray);
		}
		else{
			frameSwtichSequence=null;
		}
	}
	
	/**
	 * 获得主角的道具箱
	 * @return 道具管理对象
	 */
	public PropertyManager getPropertyBox(){
		return propBox;
	}
	
	/**
	 * 设置主角的道具箱
	 * @param 道具管理对象
	 */
	public void setPropertyBox(PropertyManager propBox){
		this.propBox=propBox;
	}
	
	/**
	 * 装备道具,从道具箱中注销
	 * @param prop 要装备的道具
	 */
	public void equipProperty(Property prop){
		switch(prop.getType()){
		case Property.MEDICINE_PROP:
			increaseLife(prop.getLifeEffect());
			break;
		case Property.ATTACK_WEAPON_PROP:
			increaseAttack(prop.getAttackEffect());
			break;
		case Property.DEFENCE_WEAPON_PROP:
			increaseDefence(prop.getDefenceEffect());
		}
		propBox.unRegisterProperty(prop.getId());
	}
	
	/**
	 * 返回当前的游戏模式
	 * @return 游戏模式
	 */
	public GameModel getGameModel() {
		return gameModel;
	}
	
	/**
	 * 根据运动的方向和每步速度移动,每次移动一个主角的动画桢的位置
	 */
	public void move(){
		int x=this.getAnimator().getX();
		int y=this.getAnimator().getY();
		//移动动画位置,每次移动一个主角的动画桢的位置
		switch(this.getMovement().getMoveDirection()){
		case Movement.LEFT_MOVE:
			x-=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[2]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.RIGHT_MOVE:
			x+=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[3]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.UP_MOVE:
			y-=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[0]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.DOWN_MOVE:
			y+=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[1]);
			getAnimator().flushPosition(x,y);
			break;
		}
		
	}
	
	/**
	 * 根据运动的方向和每步速度反向移动,用于做前面取消移动效果的目的
	 */
	public void undoMove(){
		int x=this.getAnimator().getX();
		int y=this.getAnimator().getY();
		//移动动画位置
		switch(this.getMovement().getMoveDirection()){
		case Movement.LEFT_MOVE:
			x+=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[2]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.RIGHT_MOVE:
			x-=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[3]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.UP_MOVE:
			y+=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[0]);
			getAnimator().flushPosition(x,y);
			break;
		case Movement.DOWN_MOVE:
			y-=this.getMovement().getStepSpeed();
			getAnimator().setFrame(frameSwtichSequence[1]);
			getAnimator().flushPosition(x,y);
			break;
		}
	}
	
//	/**
//	 * 设置当前的游戏模式
//	 * @param gameModel 被设置的游戏模式
//	 */
//	public void setGameModel(GameModel gameModel) {
//		this.gameModel = gameModel;
//	}
	
	public String toString(){
		if (frameSwtichSequence!=null){
			StringBuffer tmp=new StringBuffer();
			for(int i=0;i<frameSwtichSequence.length;i++){
				if (i<frameSwtichSequence.length-1){
					tmp.append(frameSwtichSequence[i]+",");
				}
				else{
					tmp.append(frameSwtichSequence[i]);
				}
			}
			return super.toString()+" frameSwtichSequence="+tmp.toString();
		}
		else{
			return super.toString();
		}
	}
	
}

⌨️ 快捷键说明

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