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

📄 kingcanvas.java

📁 一个J2ME的游戏,有源程序.是原创!适合S60的176*208的规格.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		}
		g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
				Font.SIZE_MEDIUM));
		switch (OptionMenu1) {
		case 0:
			g.setColor(255, 0, 0);
			g.drawString(" 声音开关 ", 12, 60, 0);
			g.setColor(255, 255, 255);
			g.drawString(" 适应机型 ", 12, 85, 0);
			g.drawString(" 游戏难度 ", 12, 110, 0);
			break;
		case 1:
			g.setColor(255, 255, 255);
			g.drawString(" 声音开关 ", 12, 60, 0);
			g.setColor(255, 0, 0);
			g.drawString(" 适应机型 ", 12, 85, 0);
			g.setColor(255, 255, 255);
			g.drawString(" 游戏难度 ", 12, 110, 0);
			break;
		case 2:
			g.setColor(255, 255, 255);
			g.drawString(" 声音开关 ", 12, 60, 0);
			g.drawString(" 适应机型 ", 12, 85, 0);
			g.setColor(255, 0, 0);
			g.drawString(" 游戏难度 ", 12, 110, 0);
			break;
		}
		switch (OptionMenu2) {
		case 1:
			g.setColor(ColorCounter, ColorCounter, ColorCounter);
			if (ColorCounter <= 240) {
				ColorCounter += 15;
			} else {
				ColorCounter = 0;
			}
			if (TimeOrderCounter < 35) {
				TimeOrderCounter += 2;
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				switch (OptionMenu3) {
				case 0:
					g.setColor(255, 0, 0);
					g.drawString(" 声音开 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 82, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 声音关 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 122, 0);
					break;
				case 1:
					g.setColor(255, 255, 255);
					g.drawString(" 声音开 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 82, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 声音关 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 122, 0);
					break;
				}
			} else {
				TimeOrderCounter = 35;
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				switch (OptionMenu3) {
				case 0:
					g.setColor(255, 0, 0);
					g.drawString(" 声音开 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 82, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 声音关 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 122, 0);
					isMusic = true;
					bFlagMusic = false;
					break;
				case 1:
					g.setColor(255, 255, 255);
					g.drawString(" 声音开 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 82, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 声音关 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 122, 0);
					isMusic = false;
					bFlagMusic = true;
					MusicTest = 0;
					break;
				}

			}
			break;
		case 2:
			g.setColor(ColorCounter, ColorCounter, ColorCounter);
			if (ColorCounter <= 240) {
				ColorCounter += 15;
			} else {
				ColorCounter = 0;
			}
			if (TimeOrderCounter < 35) {
				TimeOrderCounter += 2;
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
						Font.SIZE_LARGE));
				switch (OptionMenu3) {
				case 1:
					g.setColor(255, 0, 0);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 255, 255);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 0:
					g.setColor(255, 255, 255);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 0, 0);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 255, 255);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 2:
					g.setColor(255, 255, 255);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 0, 0);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				}

			} else {
				TimeOrderCounter = 35;
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
						Font.SIZE_LARGE));
				switch (OptionMenu3) {
				case 1:
					g.setColor(255, 0, 0);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 255, 255);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 0:
					g.setColor(255, 255, 255);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 0, 0);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 255, 255);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 2:
					g.setColor(255, 255, 255);
					g.drawString(" S - 40 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 77, 0);
					g.drawString(" S - 60 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 0, 0);
					g.drawString(" S - 80 ", SCREEN_WIDTH - temp2
							- (TimeOrderCounter << 1), 127, 0);
					break;
				}
			}
			break;
		case 3:
			g.setColor(ColorCounter, ColorCounter, ColorCounter);
			if (ColorCounter <= 240) {
				ColorCounter += 15;
			} else {
				ColorCounter = 0;
			}
			if (TimeOrderCounter < 35) {
				TimeOrderCounter += 2;
				g.fillRect((SCREEN_WIDTH - 12) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 12) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				switch (OptionMenu3) {
				case 0:
					g.setColor(255, 0, 0);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 1:
					g.setColor(255, 255, 255);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					break;
				case 2:
					g.setColor(255, 255, 255);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					break;
				}

			} else {
				TimeOrderCounter = 35;
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 60,
						TimeOrderCounter << 1, SCREEN_HEIGHT >> 1);
				g.setColor(0, 0, 0);
				g.fillRect((SCREEN_WIDTH - 15) - (TimeOrderCounter << 1), 70,
						TimeOrderCounter << 1, (SCREEN_HEIGHT >> 1) - 20);
				g.setColor(255, 255, 255);
				switch (OptionMenu3) {
				case 0:
					g.setColor(255, 0, 0);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					SmallPlaneNumber = 5;
					SmallPlaneSpeed = 6;
					break;
				case 1:
					g.setColor(255, 255, 255);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 255, 255);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					SmallPlaneNumber = 10;
					SmallPlaneSpeed = 7;
					break;
				case 2:
					g.setColor(255, 255, 255);
					g.drawString(" 新手级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 77, 0);
					g.drawString(" 普通级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 102, 0);
					g.setColor(255, 0, 0);
					g.drawString(" 疯狂级 ", SCREEN_WIDTH - temp6
							- (TimeOrderCounter << 1), 127, 0);
					SmallPlaneNumber = 15;
					SmallPlaneSpeed = 8;
				}
			}
			break;
		}

	}

	public void drawResourceload(Graphics g) {
		clearScreen(g, 0, 0, 0);
		g.setColor(255, 255, 255);
		g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_LARGE));
		g.drawString("装 载 中.....", (SCREEN_WIDTH - font
				.stringWidth("装 载 中.....")) / 2 + 10, SCREEN_HEIGHT / 2 - 25,
				Graphics.LEFT | Graphics.TOP);

		g.setColor(255, 255, 255);
		g.fillRect(10, SCREEN_HEIGHT / 2, SCREEN_WIDTH - 20, 20);
		g.setColor(ColorCounter, 0, 0);
		if (ColorCounter <= 240) {
			ColorCounter += 15;
		} else {
			ColorCounter = 0;
		}
		g.fillRect(10 + 1, SCREEN_HEIGHT / 2 + 1, gaugeCnt
				* (SCREEN_WIDTH - 20) / MAINCANVAS_END - 1, 18);

	}

	// --------------------------------------------------------------- 方法过程

	// ------------------------------------- 判断方法

	/**
	 * 判断友军轰炸状态处理方法
	 */

	public void bFlagSbombState() {
		if (bFlagArticle > 0) {
			if (SbombtimeCounter < 200) {
				SbombtimeCounter++;
			} else {
				bFlagSbombDouble = false;
				SbombtimeCounter = 0;
				bFlagArticle = 3;
			}
			boolean isOut = true;
			for (byte i = 0; i < PS.length; i++) {
				PS[i].PlaneSbombPacket();
				if (bFlagArticle == 3) {
					if (PS[i].PlaneY > -25) {
						isOut = false;
					}
				}
			}
			if (bFlagArticle == 3) {
				if (isOut) {
					bFlagArticle = 0;
				}
			}
		}
	}

	/**
	 * 判断主角飞机是否死亡处理方法
	 */

	public void bFlagLeadingPlaneDie() {
		if (LeadingPlaneHP < 0) {
			bFlagLeadingPlaneDisplay = false;
			LeadingPlane_X = tempX;
			LeadingPlane_Y = SCREEN_HEIGHT;
			bFlagLeadingPlaneDieMove = true;
			bFlagLeadingPlaneCollide = true;
			leadingPlaneIconCounter--;
			BombCounter = 3;
			if (leadingPlaneIconCounter == -1) {
				TimeOrderCounter = 0;
				gameState = GS_GAMEOVER;
			}
			LeadingPlaneHP = 24;
			BulletsPowerCounter = 0;
		}
	}

	/**
	 * 判断Boss是否死亡处理方法
	 */

	public void bFlagBossDie() {
		if (BS.bFlagBossDie == true) {
			TimeOrderCounter = 0;
			gameState = GS_GAMEOVER;
		}
	}

	/**
	 * 判断主角飞机血量状态处理方法
	 */

	public void bFlagLeadingPlaneHPstate() {
		if (bFlagLeadingPlaneHPfill == true) {
			LeadingPlaneHP = 24;
			bFlagLeadingPlaneHPfill = false;
		}
	}

	/**
	 * 判断BOSS是否显示过程处理方法
	 */

	public void bFlagBossDisplayAction() {
		if (BS.BossY + Boss.Boss.getHeight() >= -SCREEN_HEIGHT >> 1) {
			bFlagIslandAndWarshipDisplay = true;
		} else {
			bFlagIslandAndWarshipDisplay = false;
			timeCounter = 0;
		}
	}

	/**
	 * 判断主角飞机复位过程处理方法
	 */

	public void bFlagLeadintPlaneRestartAction() {
		if (bFlagLeadingPlaneDieMove == true) {
			if (LeadingPlane_Y > 155 && bFlagLeadingPlaneCollide == true) {
				for (byte i = 0; i < 7; i++) {
					bulletsUP[i].Bullets_X += SCREEN_WIDTH;
					bulletsUP[i].Bullets_Y += SCREEN_HEIGHT;
					if (LeadingPlaneType == 1 || LeadingPlaneType == 2) {
						bulletsLEFTUP[i].Bullets_X += SCREEN_WIDTH;
						bulletsLEFTUP[i].Bullets_Y += SCREEN_HEIGHT;
						bulletsRIGHTUP[i].Bullets_X += SCREEN_WIDTH;
						bulletsRIGHTUP[i].Bullets_Y += SCREEN_HEIGHT;
					}
				}
				LeadingPlane_Y -= 2;
				bFlagLeadingPlaneBulletsDisplay = false;
			} else {
				bFlagLeadingPlaneDieMove = false;
				bFlagLeadingPlaneCollide = false;
			}
		}
	}

	// ------------------------------------- 键控方法

	/**
	 * 游戏主菜单键控处理方法
	 */

	public void MainKeyOption() {
		switch (keyCode) {
		case KB_UP:
			if (MainOptionCounter == 90) {
				MainOptionCounter = 160;
			}
			MainOptionCounter -= 14;
			keyCode = KB_NONE;
			break;
		case KB_DOWN:
			if (MainOptionCounter == 146) {
				MainOptionCounter = 76;
			}
			MainOptionCounter += 14;
			keyCode = KB_NONE;
			break;
		case KB_CENTER:
			switch (StateCounter) {
			case 1:
				SP = new SmallPlane[SmallPlaneNumber];
				for (byte i = 0; i < SP.length; i++) {
					SP[i] = new SmallPlane(this, PlanedefaultStem);
					PlanedefaultStem += 16;
				}
				LP.timeCounterInit = true;
				imagelogo1 = null;
				imagelogo2 = null;
				gameState = GS_MAIN;
				break;
			case 2:
				gameState = GS_OPTION;
				break;
			case 3:
				Txt = "/res/doc/Help.txt";
				AT = new Help(Txt, SCREEN_WIDTH, SCREEN_HEIGHT);
				gameState = GS_HELP;
				break;
			case 4:
				Txt = "/res/doc/About.txt";
				AT = new Help(Txt, SCREEN_WIDTH, SCREEN_HEIGHT);
				gameState = GS_ABOUT;
				break;
			case 5:
				gameState = GS_EXIT;
				break;
			}
			keyCode = KB_NONE;
			break;
		}
	}

	/**
	 * 游戏功能选项菜单键控处理方法
	 */

	public void OptionKeyOption() {
		switch (keyCode) {
		case KB_UP:
			if (OptionMenu1 > 0) {
				OptionMenu1--;
			} else {
				OptionMenu1 = 2;
			}
			MenuKeyCompare();
			keyCode = KB_NONE;
			break;
		case KB_DOWN:
			if (OptionMenu1 < 2) {
				OptionMenu1++;
			} else {
				OptionMenu1 = 0;
			}
			MenuKeyCompare();
			keyCode = KB_NONE;
			break;
		case KB_LEFT:
			if (OptionMenu2 == 1) {
				if (OptionMenu3 > 0) {
					OptionMenu3--;
				} else {
					OptionMenu3 = 1;
				}
			}
			if (OptionMenu2 == 2 || OptionMenu2 == 3) {
				if (OptionMenu3 > 0) {
					OptionMenu3--;
				} else {
					OptionMenu3 = 2;
				}
			}
			keyCode = KB_NONE;
			break;
		case KB_RIGHT:
			if (OptionMenu2 == 1) {
				if (OptionMenu3 < 2) {
					OptionMenu3++;
				} else {
					OptionMenu3 = 0;

⌨️ 快捷键说明

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