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

📄 missilesprite.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 JAVA
字号:
package demo;
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 MissileSprite extends Sprite{
	private int m_nSpeed		= 0;			//导弹的速率(注意速率和速度的区别)
	private boolean m_bDown	= true;			//是否是向下发射的
	private Player m_Player;					//导弹声音对象
	public MissileSprite(Image image, int frameWidth, int frameHeight) 
	{
		super(image, frameWidth, frameHeight);
		defineReferencePixel( frameWidth / 2, frameHeight / 2 );
		setVisible(false);
		try
		{//读取声音文件
			InputStream is = this.getClass().getResourceAsStream("/demo/missile.wav");
			m_Player = Manager.createPlayer(is,"audio/x-wav");
		}
		catch (IOException e){} 
		catch (MediaException e){}
	}
	//发射导弹,参数nX、nY分别是导弹初始的横纵坐标
	//参数bDown为true表示导弹向下发射,反之向上发射
	//参数nSpeed为导弹的速率
	public void Start( int nX, int nY, boolean bDown, int nSpeed ) {
		m_nSpeed 	= nSpeed;
		m_bDown		= bDown;
		setRefPixelPosition( nX, nY );
		setVisible(true);
		try
		{
			m_Player.start();
		}
		catch (MediaException e){}
	}
	//让导弹消失
	public void Stop() {
		setVisible(false);
	}
	//逻辑操作,控制导弹的运动
	//参数scrWidth、scrHeight分别是屏幕的宽和高
	public void Logic( int scrWidth, int scrHeight ) {
		if( !isVisible() )
			return;
		int nX = getRefPixelX();
		int nY = getRefPixelY();
		if( m_bDown ){
			nY += m_nSpeed;
			//如果飞出屏幕,则导弹消失
			if( nY > scrHeight )
				setVisible(false);
		}
		else{
			nY -= m_nSpeed;
			//如果飞出屏幕,则导弹消失
			if( nY < 0 )
				setVisible(false);
		}
		setRefPixelPosition( nX, nY );		
	}
}

⌨️ 快捷键说明

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