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

📄 gametankmanager.java

📁 一个非常不错的J2ME坦克大战的游戏,可以在机顶盒上实际运行.
💻 JAVA
字号:
package com.ipanel.games.tank;

import java.io.IOException;
import java.util.Calendar;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;

public class GameTankManager {

	private GameLayer layer = null;

	private Timer timer = new Timer();

	private final int TIMER_INTERVAL = 10000;

	private final GTMCalendar gtm = new GTMCalendar();

	private long TIME_LAST_NEW_TANK = 0;

	private IPTankRandom tankRandom = new IPTankRandom();

	private final int TANK_TOTAL = 10;

	private int iCounter = 0;

	public GameTankManager(GameLayer layer) {
		super();
		this.layer = layer;

		startGameTank();
	}

	/**
	 * 规则: 隔一个时间间隔,一次产生随机数个数(1~4)的GameTank。
	 */
	private void startGameTank() {
		timer.schedule(new TankManagerTask(), 0, TIMER_INTERVAL);
	}

	class TankManagerTask extends TimerTask {
		public void run() {
			try {
				Thread.currentThread().sleep(50);
			} catch (InterruptedException e1) {
				layer.paintException("Exception from Thread.sleep()!");
			}
			/**
			 * 得到0、1、2、3。
			 */
			int iNumber = tankRandom.next(2);
			for (int i = 0; i <= iNumber; i++) {
				iCounter++;
				if (iCounter < TANK_TOTAL) {
					try {
						new GameTank(layer, tankRandom.next(16));
						TIME_LAST_NEW_TANK = gtm.getTimeInMillis();
					} catch (IOException e) {
						layer
								.paintException("Exception in GameTankManager.TankManagerTask.run()!");
					}
				}
			}
		}
	}

	void pauseWork() {
		timer.cancel();
	}

	void restartWork() {
		timer = new Timer();
		long lCurrentTime = gtm.getTimeInMillis();
		long lRealInterval = lCurrentTime - TIME_LAST_NEW_TANK;
		long lDelay = lRealInterval > TIMER_INTERVAL ? 0 : TIMER_INTERVAL
				- lRealInterval;
		timer.schedule(new TankManagerTask(), lDelay, TIMER_INTERVAL);
	}

	class GTMCalendar extends Calendar {

		protected void computeFields() {
		}

		protected void computeTime() {
		}

		protected long getTimeInMillis() {
			return super.getTimeInMillis();
		}

	}

}

⌨️ 快捷键说明

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