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

📄 aircraft.java

📁 J2ME飞机设计游戏,希望对学习J2ME的程序员有所帮助
💻 JAVA
字号:
import javax.microedition.lcdui.Graphics;

public class Aircraft extends Actor{
	public Aircraft(){
		planeActor = BattlePlaneActor.getInstance();
	}

	public void initData(){
		aircraftImage = new CImage("/plAircraft.png");
	}

	public void clean() {
		aircraftImage.clean();
		aircraftImage = null;
	}

	public void changeMyState(){
		int [] data = getIProcessData();

		if(processCount <  getIProcess()){			
			if (++processTimeCount <= data[processCount * 3 + 0]) {
				int orbitType = data[processCount * 3 + 1];
				int bulletType = data[processCount * 3 + 2];
				updateXY(orbitType,bulletType);
			}else{
				processCount++;
				processTimeCount=0;
			}
		}
	}
	
	public void draw(Graphics graphics) {
		aircraftImage.drawImage(graphics, getIPosX() >> 8, getIPosY() >> 8,
				GameConstant.CENTER);
	}

	public void updateXY(int orbitType,int bulletType) {
		int xPos = getIPosX();
		int yPos = getIPosY();
		int speed = getSpeed() << 8;
		
		switch (orbitType) {
		case 15: // 顺时针225度向下
			setIPosX(xPos - speed);
			setIPosY(yPos + speed);
			break;
		case 9:  // 顺时针135度
			setIPosX(xPos + speed);
			setIPosY(yPos + speed);
			break;
		case 26: // 跟踪主角
			if(processTimeCount == 1){
				getXYSpeed(speed);
			}
			
			if (processTimeCount % 20 == 0) {
				getXYSpeed(speed);
			}

			setIPosX(xPos + xSpeed);
			setIPosY(yPos + ySpeed);
			break;
		case 12: // 顺时针向下
			setIPosY(yPos + speed);
			break;
		}
	}
	
	public void getXYSpeed(int speed) {
		if (planeActor.getIPosY() > getIPosY()) {
			// 距离
			int planeXpos = planeActor.getIPosX() >> 8;
			int planeYpos = planeActor.getIPosY() >> 8;
			int aircraftXpos = getIPosX() >> 8;
			int aircraftYpos = getIPosY() >> 8;
			int dis = Tool.sqrt(Tool.getDistance(planeXpos, planeYpos,
					aircraftXpos, aircraftYpos));

			xSpeed = speed * (planeXpos - aircraftXpos) / dis;
			ySpeed = speed * (planeYpos - aircraftYpos) / dis;
		}
	}

	private int xSpeed = 0;   //x方向移动的速度
	private int ySpeed = 0;   //y方向移动的速度
	private CImage aircraftImage;
	private BattlePlaneActor planeActor;
}

⌨️ 快捷键说明

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