📄 mansprite.java
字号:
package demo;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
public class ManSprite extends Sprite{
public static final int MAN_NORMAL = 0; //正常状态
public static final int MAN_MOVE = 1; //移动状态
public static final int MAN_ATTACK = 2; //攻击状态
public int m_nState = MAN_NORMAL;
public ManSprite(Image image, int frameWidth, int frameHeight) {
super(image, frameWidth, frameHeight);
defineReferencePixel(frameWidth / 2, frameHeight / 2);
defineCollisionRectangle(8, 7, 25, 17);
}
//处理按键的操作,参数keyStates为按键状态
public void Input( int keyStates, int scrWidth, int scrHeight )
{
int x = getX();
int y = getY();
if ((keyStates & GameCanvas.LEFT_PRESSED) != 0)
{//向左跑
m_nState = MAN_MOVE;
setTransform(Sprite.TRANS_MIRROR);
if( x > 0 )
x -= 2;
}
else if ((keyStates & GameCanvas.RIGHT_PRESSED) != 0)
{//向右跑
m_nState = MAN_MOVE;
setTransform(Sprite.TRANS_NONE);
if( x < scrWidth )
x += 2;
}
else if ((keyStates & GameCanvas.UP_PRESSED) != 0)
{//向上跑
m_nState = MAN_MOVE;
if( y > 60 )
y -= 2;
}
else if ((keyStates & GameCanvas.DOWN_PRESSED) != 0)
{//向下跑
m_nState = MAN_MOVE;
if( y < scrHeight - getHeight() )
y += 2;
}
else{
m_nState = MAN_NORMAL;
}
setPosition(x, y);
if ((keyStates & GameCanvas.FIRE_PRESSED) != 0)
{//攻击
m_nState = MAN_ATTACK;
}
}
//逻辑操作
public void Logic(){
switch( m_nState ){
case MAN_NORMAL:
setFrame(0);
break;
case MAN_MOVE:
if( getFrame() == 1 )
setFrame(2);
else
setFrame(1);
break;
case MAN_ATTACK:
setFrame(3);
m_nState = MAN_NORMAL;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -