wavesprite.java

来自「J2ME手机游戏50例」· Java 代码 · 共 48 行

JAVA
48
字号
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 + =
减小字号Ctrl + -
显示快捷键?