⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrowsprite.java

📁 j2me编写的一款类似跳舞毯的小游戏
💻 JAVA
字号:
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;

public class ArrowSprite extends Sprite{
	protected int m_nDir;			//箭头的方向
	protected boolean m_bMove;	//箭头类型,true为运动箭头
	protected int m_nEndY;			//终止位置的纵坐标,只对运动箭头有效
	protected int m_nSpeed;		//向上运动的速度,只对运动箭头有效
	/*******
	 * 功能:创建实例,并设置精灵的参考点
	 * @参数 image...........指定精灵图像
	 * @参数 frameWidth......精灵的宽
	 * @参数 frameHeight.....精灵的高
	 */
	public ArrowSprite(Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);		
		defineReferencePixel(frameWidth / 2, frameHeight / 2);		
		setVisible( false ); 		//只创建实例,尚未使用,所以设置成不可见		
	}
	/*******
	 * 功能:设置静态箭头,并开启箭头可以使用的开关
	 * @param nX.............箭头位置的横坐标
	 * @param nY.............箭头位置的纵坐标
	 * @param nDir...........箭头的方向
	 */
	public void StartStatic( int nX, int nY, int nDir ){
		m_nDir 		= nDir;
		m_bMove 	= false;		//箭头类型为静态箭头
		setFrame(0);				//使用第1帧,第1帧编号为0
		switch( nDir ){				//根据箭头方向,转换精灵图像
		case 0:
			setTransform( Sprite.TRANS_NONE );
			break;
		case 1:
			setTransform( Sprite.TRANS_MIRROR_ROT90 );
			break;
		case 2:
			setTransform( Sprite.TRANS_MIRROR_ROT180 );
			break;
		case 3:
			setTransform( Sprite.TRANS_MIRROR_ROT270 );
			break;
		}
		setRefPixelPosition( nX, nY );	//设置箭头位置
		setVisible(true);				//设置箭头可见,即开启可使用的开关
	}
	/*******
	 * 功能:设置动态箭头,并开启箭头可以使用的开关
	 * @param nX.............箭头位置的横坐标
	 * @param nY.............箭头位置的纵坐标
	 * @param nEndY..........箭头终止位置的纵坐标
	 * @param nSpeed.........箭头向上运动的速度
	 * @param nDir...........箭头的方向
	 */
	public void StartMove( int nX, int nY, int nEndY, int nSpeed, 
			int nDir ){
		m_nDir 		= nDir;
		m_nSpeed 	= nSpeed;
		m_bMove 	= true;				//箭头类型为动态箭头
		m_nEndY		= nEndY;
		setFrame(1);					//使用第2帧,第2帧编号为1
		switch( nDir ){					//根据箭头方向,转换精灵图像
		case 0:
			setTransform( Sprite.TRANS_NONE );
			break;
		case 1:
			setTransform( Sprite.TRANS_MIRROR_ROT90 );
			break;
		case 2:
			setTransform( Sprite.TRANS_MIRROR_ROT180 );
			break;
		case 3:
			setTransform( Sprite.TRANS_MIRROR_ROT270 );
			break;
		}
		setRefPixelPosition( nX, nY );	//设置箭头位置
		setVisible(true);				//设置箭头可见,即开启可使用的开关
	}
	/*******
	 * 功能:逻辑操作,实现箭头的运动,该方法每隔一定时间都会被上层调用
	 */
	public void Logic(){
		if( m_bMove && isVisible() ){
			int nY = getRefPixelY();
			nY = nY - m_nSpeed;
			setRefPixelPosition( getRefPixelX(), nY );
			if( nY < m_nEndY )
				setVisible( false );
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -