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

📄 transport.java

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

import javax.microedition.lcdui.Graphics;
//import javax.microedition.lcdui.game.Sprite;

public class Transport extends Actor{
	public Transport() {
		world = World.getInstance();
	}

	public void initData(){
		//transportImage = new CImage("/bombPlane.png");

		transportImage = new CImage("/largePlane.png");
		setNotUsed(true);

		initXYSpeed();
	}
	
	public void clean(){
		transportImage.clean();
		transportImage = null;
	}

	public void changeMyState() {
		if (isNotUsed() == true) {
			return;
		}

		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;
			}
		}

		if ((getIPosY() >> 8) < -48) {
			setNotUsed(true);
		}
	}
	
	public void updateXY(int orbitType, int bulletType) {
		int xPos = getIPosX();
		int yPos = getIPosY();
		int speed = getSpeed() << 8;
		// System.out.println("orbitType====" + orbitType);

		switch (orbitType) {
		case 3: // 顺时针45度向上
			setIPosX(xPos + speed);
			setIPosY(yPos - speed);
			break;
		case 24: // 屏幕后
			setIPosY(yPos - speed);
			break;
		case 0: // 发射子弹
			if (processTimeCount == 1) {
				type[0] = Tool.abs(random.nextInt() % 3);
				while (true) {
					type[1] = Tool.abs(random.nextInt() % 3);
					if (type[0] != type[1]) {
						break;
					}
				}

				fire(type[0], bulletType, xPos, yPos + (48 << 8), xSpeed[0],
						ySpeed[0]);
				fire(type[1], bulletType, xPos, yPos + (48 << 8), xSpeed[1],
						ySpeed[1]);
			}
			break;
		}
	}

	private void fire(int type, int bulletType, int xPos, int yPos, int xSpeed,
			int ySpeed) {
		Bullet bullet = world.newBullet(bulletType, xPos, yPos, xSpeed, ySpeed);
		bullet.setCurrentFrame(-1);
		switch (type) {
		case 0:
			bullet.setAction((byte) 0);
			break;
		case 1:
			bullet.setAction((byte) 1);
			break;
		case 2:
			bullet.setAction((byte) 2);
			break;
		}
	}

	public void draw(Graphics graphics) {
		if (isNotUsed() == true) {
			return;
		}
		
		transportImage.drawImage(graphics, getIPosX() >> 8, getIPosY() >> 8,
				GameConstant.CENTER);

//		transportImage.drawRegionImage(graphics, 0, 0, 46, 95,
//				Sprite.TRANS_MIRROR, getIPosX() - 1, getIPosY(),
//				GameConstant.LEFTCENTER);
	}

	private void initXYSpeed(){
		xSpeed = Tool.getXSpeedByAngle(315,2,90,5);
		ySpeed = Tool.getYSpeedByAngle(315,2,90,5);
	}

	private CImage transportImage;
	private World world;
	private Random random = new Random();
	private int [] type = new int[2];
	private int [] xSpeed;
	private int [] ySpeed;
}

⌨️ 快捷键说明

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