📄 wavesprite.java
字号:
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
public class WaveSprite extends Sprite{
private int m_nSpeed = 0; //冲击波的速率(注意速率和速度的区别)
private boolean m_bRight = true; //是否是向右发射的
public WaveSprite(Image image, int frameWidth, int frameHeight){
super(image, frameWidth, frameHeight);
defineReferencePixel( frameWidth / 2, frameHeight / 2 );
setVisible(false);
}
//发射冲击波,参数nX、nY分别是导弹初始的横纵坐标
//参数bRight为true表示向右发射,反之向左发射
//参数nSpeed为冲击波的速率
public void Start( int nX, int nY, boolean bRight, int nSpeed ) {
m_nSpeed = nSpeed;
m_bRight = bRight;
if( m_bRight )
this.setTransform(Sprite.TRANS_NONE);
else
this.setTransform(Sprite.TRANS_MIRROR);
setRefPixelPosition( nX, nY );
setVisible(true);
}
//逻辑操作,控制冲击波的运动
//参数scrWidth、scrHeight分别是屏幕的宽和高
public void Logic( int scrWidth, int scrHeight ) {
if( !isVisible() )
return;
int nX = getRefPixelX();
int nY = getRefPixelY();
if( m_bRight ){
nX += m_nSpeed;
//如果飞出屏幕,则冲击波消失
if( nX > scrWidth )
setVisible(false);
}
else{
nX -= m_nSpeed;
//如果飞出屏幕,则冲击波消失
if( nX < 0 )
setVisible(false);
}
setRefPixelPosition( nX, nY );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -