📄 enemysprite.java
字号:
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); //enemy.png图中间部分,开枪状态
m_nTime --;
if( m_nTime < 0 )
setState(ENEMY_FIRE);
break;
case ENEMY_FIRE:
setVisible(true);
setFrame(1);//enemy.png图中靠左部分,初始状态
setState(ENEMY_NORMAL);
break;
case ENEMY_DEAD:
setVisible(true);
setFrame(2);//enemy.png图中靠右部分,死亡状态
m_nTime --;
if( m_nTime < 0 )
setState(ENEMY_HIDE);
break;
case ENEMY_HIDE:
setVisible(false);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -