enemysprite.java
来自「J2ME编程的50个例子,适合掌上系统的编程」· Java 代码 · 共 53 行
JAVA
53 行
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
public class EnemySprite extends Sprite{
private boolean m_bRight = true; //敌人是否向左移动的标志
private int m_nSpeed = 1; //敌人的移动速率(注意不是速度)
public EnemySprite(Image image, int frameWidth, int frameHeight) {
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
setVisible(false);
}
//产生敌人
//参数nX、nY分别是敌人位置的横纵坐标
//参数bLeft指定敌人方向,参数nSpeed指定敌人速率
public void Start( int nX, int nY, boolean bRight, int nSpeed ){
m_bRight = bRight;
if( bRight )
setTransform(Sprite.TRANS_MIRROR);
else
setTransform(Sprite.TRANS_NONE);
setRefPixelPosition( nX, nY );
m_nSpeed = nSpeed;
setVisible( true );
}
//逻辑操作
public void Logic( int srcWidth, int scrHeight ){
if( !isVisible() )
return;
int x = getRefPixelX();
int y = getRefPixelY();
if( m_bRight ){
x += m_nSpeed;
if( x > srcWidth + getWidth()/2 )
setVisible(false);
}
else{
x -= m_nSpeed;
if( x < - getWidth()/2 )
setVisible(false);
}
setRefPixelPosition(x, y);
//产生跑步动画
int n = getFrame();
if( n == 0 )
setFrame(1);
else
setFrame(0);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?