📄 enemysprite.java
字号:
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_BEHIT = 1; //被打状态
private int m_nState = ENEMY_NORMAL;
private int m_nLife;
public EnemySprite(Image image, int frameWidth, int frameHeight) {
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
setVisible(false);
defineCollisionRectangle(3, 7, 30, 17);
}
//产生敌人
//参数nX、nY分别是敌人位置的横纵坐标
public void Start( int nX, int nY ){
setRefPixelPosition( nX, nY );
m_nState = ENEMY_NORMAL;
m_nLife = 4;
setVisible( true );
}
//被攻击,参数ObjectX是攻击着的X坐标,参数scrWidth是屏幕的宽度
public void BeHit( int ObjectX, int scrWidth ){
int x = getRefPixelX();
if( x < ObjectX ){
if( x > 0 )
x = x - 3;
}
else if( x < scrWidth )
x = x + 3;
setRefPixelPosition(x, getRefPixelY());
m_nLife --;
if( m_nLife <= 0 )
setVisible(false);
m_nState = ENEMY_BEHIT;
}
//逻辑操作
public void Logic(){
if( !isVisible() )
return;
switch( m_nState ){
case ENEMY_NORMAL:
setFrame(0);
break;
case ENEMY_BEHIT:
setFrame(1);
m_nState = ENEMY_NORMAL;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -