📄 arrowsprite.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 + -