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

📄 mansprite.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 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 + -