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

📄 nextframe.java

📁 J2ME的一个简单游戏,实现动物躲避从空中掉下来的东西!
💻 JAVA
字号:
package game;

import java.util.Random;
import java.util.TimerTask;


public class NextFrame extends TimerTask
{
	private GameCtrl gameCtrl;
	private Random rand = new Random();

	// 恐龙尺寸
	private int animalHeight = 0;
	private int animalWidth = 0;

	// 炸弹尺寸
	private int bombWidth = 0;
	private int bombHeight = 0;

	public NextFrame(GameCtrl gameCtrl)
        {
		super();
		this.gameCtrl = gameCtrl;

		// 保存恐龙和炸弹尺寸
		animalWidth = gameCtrl.animalImage.getWidth();
		animalHeight = gameCtrl.animalImage.getHeight();
		bombWidth = gameCtrl.bombImage.getWidth();
		bombHeight = gameCtrl.bombImage.getHeight();
	}

	public void run() {

		for (int i = 0; i < 4; i++){
			// 炸弹没显示时设置初始位置,显示后水平位置固定
			if (gameCtrl.bombCanUse[i] == false){
				// 随机设置炸弹初始位置
				int x = (int)(rand.nextLong());
				x = (int)(x % gameCtrl.width);
				gameCtrl.bombPosX[i] = x;

				int y = (int)(rand.nextLong());
				y = (int)(y % gameCtrl.height);

				// 将炸弹设置在虚拟屏幕
				gameCtrl.bombPosY[i] = -y;

				// 限制炸弹水平位置
				if (x < bombWidth)
					x = bombWidth;
				if (x > gameCtrl.width - bombWidth)
					x = gameCtrl.width - bombWidth;

				// 标志第i个炸弹进入可视区
				gameCtrl.bombCanUse[i] = true;

			}else{
				// 炸弹下移
				gameCtrl.bombPosY[i] += 20;

				// 炸弹出界检测
				if (gameCtrl.bombPosY[i] > gameCtrl.height + bombHeight /2)
					gameCtrl.bombCanUse[i] = false;

				// 碰撞检测
				if (gameCtrl.bombPosY[i] + bombHeight/2  >= gameCtrl.height - animalHeight &&
					gameCtrl.bombPosY[i] - bombHeight/2 <= gameCtrl.height - animalHeight /2 &&
					gameCtrl.bombPosX[i] + bombWidth/2  >= gameCtrl.animalPos - animalWidth /2 &&
					gameCtrl.bombPosX[i] - bombWidth/2  <= gameCtrl.animalPos + animalWidth/2 ){
					// 结束游戏
					gameCtrl.isGameOver = true;

					// 关闭定时器
					cancel();
				}
			}
		}

		// 计分
		gameCtrl.score++;

		// 重绘画面
		gameCtrl.repaint();
	}

}

⌨️ 快捷键说明

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