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

📄 shipsprite.java

📁 J2ME编程的50个例子,适合掌上系统的编程
💻 JAVA
字号:
package demo;
import java.io.IOException;

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


public class ShipSprite extends Sprite {
	protected int m_nSpeed		= 3;			//战舰的移动速率(注意不是速度)
	public MissileSprite m_Missile;  			//战舰携带的炮弹
	public ShipSprite(Image image, int frameWidth, int frameHeight) {
		super(image, frameWidth, frameHeight);
		defineReferencePixel(frameWidth / 2, frameHeight / 2);
		try{
			Image img = Image.createImage("/demo/missile.png");
			m_Missile = new MissileSprite(img,8,7);
		}
		catch(IOException ioe){}
		catch(Exception e){}
	}
	//逻辑操作,控制炮弹
	public void Logic( int scrWidth, int scrHeight ){
		m_Missile.Logic( scrWidth, scrHeight );
	}
	//处理按键的操作,参数keyStates为按键状态
	public void Input( int keyStates, int scrWidth, int scrHeight )
	{
		int x = getRefPixelX();
		int y = getRefPixelY();
		if ((keyStates & GameCanvas.LEFT_PRESSED) != 0){
			x -= m_nSpeed;
			setTransform(Sprite.TRANS_MIRROR);
		}
	    if ((keyStates & GameCanvas.RIGHT_PRESSED) != 0){
	    	x += m_nSpeed;
	    	setTransform(Sprite.TRANS_NONE);
	    }
	    if( x < getWidth()/2 )
	    	x = getWidth()/2;
	    if( x > scrWidth - getWidth()/2 )
	    	x = scrWidth - getWidth()/2;
	    setRefPixelPosition(x, y);
	    
	    if ((keyStates & GameCanvas.FIRE_PRESSED) != 0) 
	    {//发射炮弹	    
	    	CreateMissile();
	    }
	}
	//发射炮弹
	public void CreateMissile(){
	    if( m_Missile.isVisible() )
	    	return;
	    m_Missile.setVisible(true);
	    int nX = getRefPixelX();
	    int nY = getRefPixelY();
	    m_Missile.Start( nX, nY, true, 4 );
	}
}

⌨️ 快捷键说明

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