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 + -
显示快捷键?