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

📄 helicopter.java

📁 J2ME飞机设计游戏,希望对学习J2ME的程序员有所帮助
💻 JAVA
字号:
public class Helicopter extends Actor{
	public Helicopter(){
		world = World.getInstance();
		planeActor = BattlePlaneActor.getInstance();
	}

	public void initData(){
		super.initSpiritDate("/helicopter.bin", "/helicopter.png",
				"/helicopterCom.bin");
	}

	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 updateXY(int orbitType,int bulletType) {
		int xPos = getIPosX();
		int yPos = getIPosY();
		int speed = getSpeed() << 8;
		switch (orbitType) {
		case 12: // 顺时针向下
			setIPosY(yPos + speed);
			break;
		case 0: // 原地不动
			if (processTimeCount == 1) {
				whichDirection();
				xSpeed = Tool.getXSpeedByAngel(angel,6);
				ySpeed = Tool.getYSPeedByAngel(angel,6);
			}
			
			if (processTimeCount % 4 == 0) {
				if(getAction() == 0){
					world.newBullet(bulletType, xPos - (10 << 8),
							yPos - (12 << 8), xSpeed, ySpeed);
					
					world.newBullet(bulletType, xPos + (10 << 8),
							yPos - (12 << 8), xSpeed, ySpeed);
				}else if(getAction() == 1){
					world.newBullet(bulletType, xPos - (7 << 8),
							yPos - (19 << 8), xSpeed, ySpeed);

					world.newBullet(bulletType, xPos + (7 << 8),
							yPos - (5 << 8), xSpeed, ySpeed);
				}else{
					world.newBullet(bulletType, xPos - (7 << 8),
							yPos - (5 << 8), xSpeed, ySpeed);			

					world.newBullet(bulletType, xPos + (7 << 8),
							yPos - (19 << 8), xSpeed, ySpeed);
				}
			}
			
			if(processTimeCount == 6){
				setAction((byte)0);
				angel = 0;
				xSpeed = 0;
				ySpeed = 0;
			}

			break;
		case 9: // 顺时针135度
			setIPosX(xPos + speed);
			setIPosY(yPos + speed);
			break;
		case 6: // 向右
			setIPosX(xPos + speed);
			break;
		case 3: // 顺时针45度向上
			setIPosX(xPos + speed);
			setIPosY(yPos - speed);
			break;
		case 24: // 屏幕后
			setIPosY(yPos - speed);
			break;
		case 15: // 顺时针225度向下
			setIPosX(xPos - speed);
			setIPosY(yPos + speed);
			break;
		case 21: // 顺时针315度向上
			setIPosX(xPos - speed);
			setIPosY(yPos - speed);
			break;
		case 18: // 屏幕向左
			setIPosX(xPos - speed);
			break;
		case 25:// 向下
			setIPosY(yPos + (2 << 8));
			break;
		}
	}
	
	public void whichDirection() {
		if (Tool.abs(planeActor.getIPosX() - getIPosX()) * 2 < 20
				* (planeActor.getIPosY() - getIPosY()) / 19) {
			setAction((byte)0);
			angel = 270;
			
		} else if (planeActor.getIPosX() - getIPosX() < 0) {
			setAction((byte)1);
			angel = 225;
		} else {
			setAction((byte)2);
			angel = 315;
		}
	}

	private World world;
	private BattlePlaneActor planeActor;
	private int angel = 0; //飞机转向的角度
	private int xSpeed = 0;
	private int ySpeed = 0;
	
}

⌨️ 快捷键说明

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