enemysprite.java

来自「J2ME编程的50个例子,适合掌上系统的编程」· Java 代码 · 共 64 行

JAVA
64
字号
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;


public class EnemySprite extends Sprite{
	public static final int ENEMY_NORMAL	= 0;		//正常状态
	public static final int ENEMY_FIRE	= 1;		//开火
	public static final int ENEMY_DEAD	= 2;		//被打死
	public static final int ENEMY_HIDE	= 3;		//消失
	public static final int ENEMY_STATE_NUM	= 4;	//状态总数
	private int m_nState = ENEMY_NORMAL;
	private int m_nTime;								//各种状态维持的时间
	public EnemySprite(Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);
		defineReferencePixel( frameWidth / 2, frameHeight / 2 );
		setVisible(false);
	}
	//获取当前状态
	public int getState(){
		return m_nState;
	}
	//设置当前状态
	public void setState(int state){
		if( state < 0 || state >= ENEMY_STATE_NUM )
			return;
		m_nState = state;
		switch( m_nState ){
		case ENEMY_NORMAL:
			m_nTime = 30;
		case ENEMY_DEAD:
			m_nTime = 30;
		}
	}
	//逻辑操作,自动开枪
	public void Logic(){
		switch( m_nState ){
		case ENEMY_NORMAL:
			setVisible(true);
			setFrame(0);
			m_nTime --;
			if( m_nTime < 0 )
				setState(ENEMY_FIRE);
			break;
		case ENEMY_FIRE:
			setVisible(true);
			setFrame(1);
			setState(ENEMY_NORMAL);
			break;
		case ENEMY_DEAD:
			setVisible(true);
			setFrame(2);
			m_nTime --;
			if( m_nTime < 0 )
				setState(ENEMY_HIDE);
			break;
		case ENEMY_HIDE:
			setVisible(false);
			break;
		}
	}

}

⌨️ 快捷键说明

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