📄 chicksprite.java
字号:
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
public class ChickSprite extends Sprite{
//定义一组状表示小鸡状态的数值
public static final int CHICK_STAND = 0; //原地站立
public static final int CHICK_LEFT = 1; //向左跑
public static final int CHICK_RIGHT = 2; //向右跑
public static final int CHICK_DOWN = 3; //被砸倒
public static final int CHICK_STATE_NUM = 4; //状态总数
private int m_nState = CHICK_STAND;
public int m_nTime = 15; //砸倒后,倒地停留时间
public ChickSprite( Image image, int frameWidth, int frameHeight){
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
}
//获取当前状态
public int getState(){
return m_nState;
}
//设置当前状态,参数state是新状态值
public void setState( int state ){
if( m_nState < 0 || m_nState >= CHICK_STATE_NUM )
return;
m_nState = state;
if( m_nState == CHICK_DOWN )
m_nTime = 15; //设置倒地时间
}
//处理按键的输入
//参数keyStates为当前的按键状态,scrWidth与scrHeight分别是屏幕的宽与高
public void Input( int keyStates, int scrWidth, int scrHeight ){
if( m_nState == CHICK_DOWN ) //小鸡被砸倒
return;
int x = getRefPixelX();
if( ( keyStates & GameCanvas.LEFT_PRESSED ) != 0 ){
setState( CHICK_LEFT ); //小鸡向左跑
x = x - 4;
}
else if( ( keyStates & GameCanvas.RIGHT_PRESSED ) != 0 ){
setState( CHICK_RIGHT ); //小鸡向右跑
x = x + 4;
}
else
setState( CHICK_STAND ); //小鸡原地站立
if( x >= this.getWidth() / 2 && x <= scrWidth - this.getWidth() / 2 )
setRefPixelPosition( x, getRefPixelY() );
}
//逻辑操作,产生并控制各种状态下的小鸡动画
public void Logic(){
switch( m_nState ){
case CHICK_STAND: //小鸡原地站立
setTransform( Sprite.TRANS_NONE );
setFrame(0);
break;
case CHICK_LEFT: //小鸡向左跑
setTransform( Sprite.TRANS_NONE );
if( getFrame() == 0 )
setFrame(1);
else
setFrame(0);
break;
case CHICK_RIGHT: //小鸡向右跑
setTransform( Sprite.TRANS_MIRROR );
if( getFrame() == 0 )
setFrame(1);
else
setFrame(0);
break;
case CHICK_DOWN: //小鸡被砸倒
setTransform( Sprite.TRANS_NONE );
setFrame(2);
m_nTime --;
if( m_nTime < 0 ){
setState( CHICK_STAND );
}
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -