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

📄 bulletsprite.java

📁 坦克大战 主要就是和黑白机上的相似
💻 JAVA
字号:
import java.io.IOException;
import java.io.InputStream;

import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
//定义代表子弹的精灵类
public class BulletSprite extends  Sprite{
	//定义子弹速度变量
	private int m_nSpeed	= 0;
	//定义子弹方向变量
	private int m_nDir		= 0;
	private Player m_Player;
	
	public BulletSprite(Image image, int frameWidth, int frameHeight) 
	{   //调用父类的构造函数
		super(image, frameWidth, frameHeight);
		//定义参考像素点
		defineReferencePixel( frameWidth / 2, frameHeight / 2 );
		//设置图层为不可见
		setVisible(false);
		//播放音频文件
		try
		{
			InputStream is = this.getClass().getResourceAsStream("/Bullet.wav");
			m_Player = Manager.createPlayer(is,"audio/x-wav");
		}
		catch (IOException e){} 
		catch (MediaException e){}
	}
	//设置并显示代表子弹的精灵对象的方法
	public void Start( int nX, int nY, int nDir, int nSpeed ) {
		m_nSpeed 	= nSpeed;
		m_nDir		= nDir;
		setRefPixelPosition( nX, nY );
		setVisible(true);
		try
		{
			m_Player.start();
		}
		catch (MediaException e){}
	}
	//不显示代表子弹的精灵对象的方法
	public void Stop() {
		setVisible(false);
	}
	//根据子弹方向和速度,调整显示的位置
	public void Logic() {
		if( !isVisible() )
			return;
		int nX = getRefPixelX();
		int nY = getRefPixelY();
		switch( m_nDir ){
		case 0://上方
			nY -= m_nSpeed;
			break;
		case 1://右方
			nX += m_nSpeed;
			break;
		case 2://下方
			nY += m_nSpeed;
			break;
		case 3://左方
			nX -= m_nSpeed;
			break;
		}
		setRefPixelPosition( nX, nY );		
	}
	//根据子弹的方向,得到当前坐标在地图中单元格的列数
	public int GetCurCol(){
		int nX = getRefPixelX();
		switch( m_nDir ){
		case 0://上方
		case 2://下方
			break;
		case 1://右方
			nX += 1;
			break;
		case 3://左方
			nX -= 1;
			break;
		}
		return nX / 15;
	}
//	根据子弹的方向,得到当前坐标在地图中单元格的行数
	public int GetCurRow(){
		int nY = getRefPixelY();
		switch( m_nDir ){
		case 0://上方
			nY -= 1;
			break;
		case 2://下方
			nY += 1;
			break;
		case 1://右方
		case 3://左方
			break;
		}
		return nY / 15;
	}
}

⌨️ 快捷键说明

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