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

📄 tanksprite.java

📁 坦克大战
💻 JAVA
字号:
import java.io.IOException;

import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;

//坦克类
public class TankSprite extends Sprite {
	protected int m_nDir;						//坦克的方向(0上方、1右方、2下方、3左方)
	protected int m_nLastMovX	= 0;			//坦克上次移动的X方向距离
	protected int m_nLastMovY	= 0;			//坦克上次移动的Y方向距离
	protected int m_nSpeed		= 0;			//坦克的移动速率(注意不是速度)
	public BulletSprite m_Bullet;  				//坦克携带的炮弹
	public TankSprite(Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);
		defineReferencePixel(frameWidth / 2, frameHeight / 2);
		setVisible( false );
		try{
			Image img = Image.createImage("/demo/bullets.png");
			m_Bullet = new BulletSprite(img,3,3);
		}
		catch(IOException ioe){}
		catch(Exception e){}
	}
	//产生坦克
	//参数nX、nY分别是坦克位置的横纵坐标
	//参数nDir指定坦克方向,参数nSpeed指定坦克速率
	public void Start( int nX, int nY, int nDir, int nSpeed ){
		SetDir( nDir );
		setRefPixelPosition( nX, nY );
		m_nSpeed = nSpeed;
		setVisible( true );
	}
	//坦克活动停止,坦克消失
	public void Stop() {
		setVisible(false);
	}
	//逻辑操作,控制炮弹
	public void Logic(){
		m_Bullet.Logic();
	}
	//设置方向
	public void SetDir( int nDir ){
		m_nDir = nDir;
		switch( m_nDir ){
		case 0:				//上方
			setTransform(TRANS_NONE);
			break;
		case 1:				//右方
			setTransform(TRANS_ROT90);
			break;
		case 2:				//下方
			setTransform(TRANS_ROT180);
			break;
		default:			//左方
			setTransform(TRANS_MIRROR_ROT270);
			break;
		}
	}
	//移动坦克,参数nX、nY分别是移动的X、Y方向的距离
	public void Move(int nX, int nY) {
		int nToX = getRefPixelX() + nX;
		int nToY = getRefPixelY() + nY;
		m_nLastMovX = nX;		//记录本次移动的距离
		m_nLastMovY = nY;
		setRefPixelPosition( nToX, nToY );
	}
	//坦克向后退
	public void MoveBack() {
		Move( -m_nLastMovX, -m_nLastMovY );
		m_nLastMovX = 0;
		m_nLastMovY = 0;
	}
	//发射炮弹
	public void CreateBullet(){
	    if( m_Bullet.isVisible() )
	    	return;
	    m_Bullet.setVisible(true);
	    int nX = getRefPixelX();
	    int nY = getRefPixelY();
	    m_Bullet.Start( nX, nY, m_nDir, 3 );
	}
}

⌨️ 快捷键说明

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