亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mygamecanvas.java

?? 基于J2ME的Java游戲夢幻炸彈人源程序
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 *
 * </p>
 * <p>
 * Copyright: Copyright (c) 2005
 * </p>
 * <p>
 * Company:
 * </p>
 * 非作者授權,請勿用于商業用途。
 * @author bruce.fine@gmail.com
 * @version 1.0
 */

import javax.microedition.lcdui.*;

// import com.nokia.mid.ui.DirectUtils;

import java.io.*;
import java.util.*;

public final class MyGameCanvas extends MyCanvas {
	//
	//
	static Image imageFire = null;
	static Anim animFire = null;
	//
	static Image imageSuc = null;
	static Image imageFailuer = null;
	static Image imageX = null;

	//
	int nPowerCMax = 1;
	int nBombNumCMax = 1;

	// Anim animBullet = null;
	Anim animLisa = null;
	Anim animSaving = null;
	Anim animZZ = null;
	Anim animMouse = null;
	Anim animBf = null;

	//
	Anim animHead = null;
	Anim animBody = null;
	Anim animEnd = null;
	//
	Image imageWugong = null;
	Image imageBf = null;
	static Image imageCi = null;

	//
	static MyGameCanvas instance;

	//
	static final short SN_TEXT_NUM_PER_ROW = 7;
	static short SN_TEXT_ROWS_NUM_MAX = 0;
	static short SN_TEXT_TOP_Y = 0;
	static short SN_CHAR_WIDTH = 0;
	static short SN_CHAR_HEIGHT = 0;
	static short SN_TEXT_TOP_X = 0;
	static short SN_TEXT_DIS = 0;

	// GLOBAL
	/*
	 * 狀態管理
	 */
	static final byte SB_STATE_LOADING = 0;
	static final byte SB_STATE_SPLASH = 1;
	static final byte SB_STATE_MENU = 2;
	static final byte SB_STATE_GAMEING = 3;
	static final byte SB_STATE_STORY_TELLING = 4;

	/**
	 * bState狀態管理器
	 */
	static byte sbState = SB_STATE_LOADING;
	static byte sbStateToLoad = SB_STATE_LOADING;

	// 鍵盤
	static int snKeyCodePressed = 0;
	static int snKeyCodeReleased = 0;

	// Font
	static Font font = null;

	static int snLevelOpened = 0;

	// ------------------------------------------------------------------------------------------
	// SPLASH 控制管理
	// ------------------------------------------------------------------------------------------
	static int nSlpashTimerC = 0;

	// ------------------------------------------------------------------------------------------
	// LOADING 控制管理
	// ------------------------------------------------------------------------------------------
	// static int nLoadingTimerC = 0;

	// ------------------------------------------------------------------------------------------
	// MENU 控制管理
	// ------------------------------------------------------------------------------------------
	String[] strrTextShows = null;
	String[] strrTextForAbout = null;
	String[] strrTextForHelp = null;

	int nPointerStrrTextShow = 0;

	String[] strrMenu = { "開始游戲", "幫助", "關于", "退出" };

	int nPointerStrrMenu = 0;

	boolean isStrrMenuButtonClicked = false;

	//
	static Image imageUp = null;
	static Image imageDown = null;
	static Image imageLeft = null;
	static Image imageRight = null;

	//

	// ------------------------------------------------------------------------------------------
	// GAME 控制管理

	boolean isGameWin = false;
	boolean isMenuInGameWorked = false;
	boolean isFoorsMenuWorked = false;
	boolean isScriptWorking = false;
	boolean isKeyReponseMenu = false;

	//
	String[] strMenuFoors = { "狀態", "道具", "幫助" };

	int nPStrMenuFoors = 0;

	String[] strrFoos = { "蜂蜜", "水果", "蜂王漿", "甘露", "靈芝草", "人參" };

	/**
	 * 
	 * num_foos 分別有: 補血:蜂蜜,水果,蜂王漿 補氣:靈芝草,人參,甘露
	 * 
	 */
	int[] num_foos = new int[] { 10, 10, 10, 10, 10, 10 };
	int nPStrrFoos = 0;
	int nStarPointer = 0;
	int nPoundPointer = 3;

	// 這個也需要記錄

	// 非BOSS場景
	String[] strrMenuInGame = { "繼續游戲", "回主菜單", "退出游戲" };
	String[] strrMenuInGameResultFailur = { "重新游戲", "回主菜單", "退出游戲" };
	String[] strrMenuInGameResultWin = { "繼續挑戰", "回主菜單", "退出游戲" };
	// BOSS場景
	String[] strrMenuInGameBOSS = { "繼續游戲", "回主菜單", "退出游戲" };

	int nPorintStrrMenuInGame = 0;

	//
	short nMapId = 0;

	//
	boolean isMenuInGameForState = false;

	// 地圖控制區域
	// static Image[] imageTiles = null;

	// 地圖絕對坐標
	static int snWindowX = 0;
	static int snWindowY = 0;
	//
	static int snMapWidth = 0;
	static int snMapHeight = 0;

	//
	static byte[][] snsTiles = null;
	// static boolean[][] sisTilesNull = null;
	static int snTilesWidthNum = 0;
	static int snTilesHeightNum = 0;

	static int snMapX = 0;

	static int snMapY = 0;

	static int snTilesWidthNumInScreen = 0;

	static int snTilesHeightNumInScreeen = 0;

	static int snMapAreaWidthInScreen = 0;

	static int snMapAreaHeightInScreen = 0;

	// 滾動屏幕
	static boolean isScrollMapLeft = false;

	static boolean isScrollMapRight = false;

	static boolean isScrollMapUp = false;

	static boolean isScrollMapDown = false;

	//
	static Image imageSps = null;

	static Image imageBox = null;

	static Vector vecticUnits = null;

	// static Image imageRabit = null;

	static Image imageSaving = null;

	static Image imageZZ = null;

	static Image imageMouse = null;

	static Image imageBall = null;

	static Image imageDoor = null;

	static Image imageMap = null;

	// static MyImage[] myImage1d = null;

	static Image imageBomb = null;

	Anim animBomb = null;

	//

	int nTimerForDynTiles = 0;

	static final int SN_TIMER_FOR_DYN_TILES_MAX = 2;

	int nPointerDynTiles = 0;

	static final int SN_DYN_TILES_MAX = 3;

	//
	NPC npcLisa = null;

	CPC cpc = null;

	CPC cpc2 = null;

	// 數據控制,各種任務,對話等的標志位
	/***************************************************************************
	 * 門是否被開啟 是否找到鑰匙
	 * 
	 */
	byte[] data1D = null;

	short[][] dataxy2d = null;

	// 道具

	// 任務用的道具
	int[] num_foos_task = null;

	int n_money = 0;

	// 對話控制
	//
	short nDialogWindowX = 0;

	short nDialogWindowY = 0;

	short nDialogWindowWidth = 0;

	short nDialogWindowHeight = 0;

	short nDialogWindowTextX = 0;

	short nDialogWindowTextY = 0;

	short nFontHeight = 0;

	short nFontDisY = 2;

	//

	boolean isDialogWorking = false;

	int page = 0;

	static final int ROW = 2;

	int lastpage = 0;

	String[] strDialog1D = null;

	//
	// 天氣系統
	// 天氣狀況是否打開
	int nRainOrSnow = 0; // 0 -> null, 1 -> rain, 2 -> snow

	int[][] nRainOrSnowXY = null;

	//
	static boolean isStoryModeWorking = false;

	String[] strStory = null;

	short nLine = 0;

	short nLineMax = 0;

	short nLengthMax = 0;

	short nTimerStory = 0;

	short nTimerStoryMax = 0;

	Random random = null;

	//
	int nTileWidth = Consts.SN_TILE_WIDTH;

	int nTileHeight = Consts.SN_TILE_HEIGHT;

	int nTileWidthForCalc = nTileWidth * 10;

	int nTileHeightForCalc = nTileHeight * 10;

	//

	//

	public void initStory() {

		strStory = new String[] { "Lisa是太陽神", "的第7個女兒,", "她聰明伶俐,生", "活在夢幻之地的",
				"幽幽山谷中。她", "擁有魔法,卻愛", "心十足,她心靈", "美好,卻不屈服", "于黑暗。一天怪",
				"怪之森的惡魔", "Bruce偷走了月", "亮和星星,太陽", "不得不加班工作", ",天使傳信給",
				"Lisa,讓她帶著", "父親給她的泡泡", "魔法前去與怪怪", "之森的惡魔", "Bruce戰斗,奪",
				"回月亮和星星。" };
		nLine = (short) -SN_TEXT_ROWS_NUM_MAX;
		nLineMax = (short) (strStory.length);
		nTimerStoryMax = 10;
		nTimerStory = 0;
	}

	public void initDialog() {
		page = 0;
		isDialogWorking = true;
		strDialog1D = new String[] { "我就是傳說中的上帝", ",現在賜予你力量,", "殺死 Bruce,人們",
				"為你祈福." };
		if (strDialog1D.length % ROW == 0) {
			lastpage = (strDialog1D.length / ROW) - 1;

		} else {
			lastpage = (strDialog1D.length / ROW);
		}
	}

	public void freeStrDialog() {
		if (isScriptWorking) {
			isScriptDialogWorked = true;
		}

		isDialogWorking = false;
		strDialog1D = null;
		lastpage = 0;
		page = 0;
	}

	// 對話控制結束
	/**
	 * 內部資源管理類實例
	 */

	LoadingGameRes loadingGameRes = null;

	static int nGameScore = 0;

	/**
	 * 構造
	 */
	public MyGameCanvas() {

		instance = this;
		isFivePressed = false;
		font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM);
		random = new Random();
		//

		SN_CHAR_WIDTH = (short) font.getHeight();
		SN_CHAR_HEIGHT = (short) font.getHeight();
		SN_TEXT_DIS = (short) (font.getHeight() / 6); // 單距
		SN_TEXT_ROWS_NUM_MAX = (short) (Consts.SN_SCREEN_HEIGHT
				/ (SN_CHAR_HEIGHT + SN_TEXT_DIS) - 3);
		SN_TEXT_TOP_X = (short) ((Consts.SN_SCREEN_WIDTH - SN_CHAR_WIDTH
				* SN_TEXT_NUM_PER_ROW) >> 1);
		SN_TEXT_TOP_Y = (short) (SN_CHAR_HEIGHT + SN_TEXT_DIS + SN_CHAR_HEIGHT / 2);
		// INITGLOBAL
		sbState = SB_STATE_SPLASH;

		try {
			int tempWidth = (short) (font.stringWidth("高") * SN_TEXT_NUM_PER_ROW);
			nFontHeight = (short) font.getHeight();
			nFontDisY = 4;
			int nFontDisX = 8;
			nDialogWindowWidth = (short) (tempWidth + nFontDisX * 2);
			nDialogWindowHeight = (short) ((nFontHeight + nFontDisY) * ROW + nFontDisY);

			nDialogWindowX = (short) ((Consts.SN_SCREEN_WIDTH - nDialogWindowWidth) / 2);
			nDialogWindowY = (short) ((Consts.SN_SCREEN_HEIGHT - nDialogWindowHeight) - 1);
			nDialogWindowTextX = (short) (nDialogWindowX + nFontDisX);
			nDialogWindowTextY = (short) (nDialogWindowY + nFontDisY);

		} catch (Exception ex) {
			int tempWidth = (short) (16 * SN_TEXT_NUM_PER_ROW);
			nFontHeight = (short) 16;
			nFontDisY = 4;
			int nFontDisX = 8;
			nDialogWindowWidth = (short) (tempWidth + nFontDisX * 2);
			nDialogWindowHeight = (short) ((nFontHeight + nFontDisY) * ROW + nFontDisY);

			nDialogWindowX = (short) ((Consts.SN_SCREEN_WIDTH - nDialogWindowWidth) / 2);
			nDialogWindowY = (short) ((Consts.SN_SCREEN_HEIGHT - nDialogWindowHeight) - 1);
			nDialogWindowTextX = (short) (nDialogWindowX + nFontDisX);
			nDialogWindowTextY = (short) (nDialogWindowY + nFontDisY);
		}
	}

	/**
	 * 清理資源
	 */
	final void freeAllResource() {
		// All of Resources will be free here
		strrTextShows = null;
		strrTextForHelp = null;
		strrTextForAbout = null;
		//
		imageUp = null;
		imageDown = null;
		imageLeft = null;
		imageRight = null;
		//
		// imageTiles = null;
		//
		imageSps = null;

		vecticUnits = null;
		//
		//
		npcLisa = null;
		cpc = null;
		cpc2 = null;
		imageBox = null;
		// imageRabit = null;
		imageSaving = null;
		imageZZ = null;
		imageMouse = null;
		imageDoor = null;
		imageBomb = null;
		// animBullet = null;
		animBomb = null;
		animLisa = null;
		animSaving = null;
		animZZ = null;
		animBf = null;
		animMouse = null;
		//
		animHead = null;
		animBody = null;
		animEnd = null;
		imageWugong = null;
		imageBf = null;
		vecticUnits = null;
		imageFire = null;
		animFire = null;
		imageSuc = null;
		imageFailuer = null;
		imageX = null;
		//	
	}

	boolean isFivePressed = false;

	/**
	 * 載入
	 */
	final void initResource() {
		switch (sbStateToLoad) {
		case SB_STATE_SPLASH: {
		}
			break;
		case SB_STATE_MENU: {
			try {
				//
				imageUp = Image.createImage("/res/up.png");
				imageDown = Image.createImage("/res/down.png");
				imageLeft = Image.createImage("/res/left.png");
				imageRight = Image.createImage("/res/right.png");
				//
				strrTextForAbout = new String[]{"bruce.fine", "@gmail.com:)"};

				strrTextForHelp = new String[]{"我的夢幻", "炸彈人設計:)"};
				//
				nPointerStrrTextShow = 0;
				nPointerStrrMenu = 0;
				isStrrMenuButtonClicked = false;
				//
				snLevelOpened = RMSSystem.loadLevelOpened();
				// System.out.println("snLevelOpened:" + snLevelOpened);
				if (snLevelOpened > Consts.SN_ABS_MAX_LEVEL) {
					//
					snLevelOpened = Consts.SN_ABS_MAX_LEVEL;
					nMapId = 0;
				} else {
					//
					nMapId = (short) (snLevelOpened + 1);
				}

				//

				initWindowShow(10, 5);

			} catch (Exception ex) {
				ex.printStackTrace();
			}

		}
			break;
		case SB_STATE_GAMEING: {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产毛片aaaaa无费看| 色综合色狠狠天天综合色| 日韩影院精彩在线| 亚洲18女电影在线观看| 亚洲永久免费av| 一区二区三区国产精品| 亚洲精品久久嫩草网站秘色| 一区二区高清视频在线观看| 亚洲国产美女搞黄色| 日韩国产精品久久久| 免费在线视频一区| 国产做a爰片久久毛片| 国产91精品一区二区麻豆网站 | 激情欧美一区二区| 国产在线一区二区综合免费视频| 国产剧情av麻豆香蕉精品| 国产在线精品一区二区夜色| 国产成人av一区二区三区在线 | 99国产精品久久久久| 91在线国内视频| 日本精品裸体写真集在线观看| 色94色欧美sute亚洲线路二| 欧美日韩国产高清一区二区三区 | 日韩主播视频在线| 激情欧美日韩一区二区| 成人av综合一区| 91九色02白丝porn| 7777精品伊人久久久大香线蕉完整版 | 亚洲高清免费在线| 日本成人在线看| 粉嫩高潮美女一区二区三区| 91久久久免费一区二区| 欧美一区二区人人喊爽| 日本一区二区三区四区| 亚洲色图欧美在线| 青青草97国产精品免费观看无弹窗版 | 樱花影视一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产成人精品午夜视频免费| 91精彩视频在线观看| 日韩一区二区精品葵司在线| 国产午夜一区二区三区| 亚洲日本乱码在线观看| 久久国产剧场电影| av午夜一区麻豆| 91精品中文字幕一区二区三区| 国产性做久久久久久| 亚洲成人免费视| 国产精品亚洲午夜一区二区三区 | 在线成人高清不卡| 久久亚洲私人国产精品va媚药| 成人欧美一区二区三区视频网页 | 国产一区二区在线观看视频| 91色综合久久久久婷婷| 日韩欧美国产麻豆| 亚洲日本韩国一区| 国产一区二区主播在线| 在线精品视频一区二区三四| 久久久久久久网| 午夜电影一区二区三区| 不卡在线观看av| 日韩一区二区不卡| 亚洲精品乱码久久久久| 精品伊人久久久久7777人| av成人免费在线| 久久色中文字幕| 午夜电影久久久| 色婷婷狠狠综合| 日本一区二区三区免费乱视频| 日日摸夜夜添夜夜添国产精品 | 99在线精品一区二区三区| 欧美一区二区在线免费观看| 亚洲免费av在线| 国产精品自拍在线| 91精品国产一区二区三区香蕉 | 99久久99久久精品国产片果冻| 欧美α欧美αv大片| 亚洲一区二区三区在线| 成人av资源下载| 久久嫩草精品久久久精品一| 日本最新不卡在线| 欧美在线影院一区二区| 综合色天天鬼久久鬼色| 国产iv一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 一二三四社区欧美黄| 91农村精品一区二区在线| 欧美激情综合在线| 极品少妇xxxx精品少妇| 欧美一级夜夜爽| 日本在线不卡一区| 欧美三级在线播放| 亚洲国产日韩精品| 色婷婷亚洲精品| 亚洲欧美色图小说| 99国产精品国产精品毛片| 国产精品久久久久三级| 福利一区福利二区| 国产精品美女一区二区| 岛国一区二区在线观看| 久久精品一区二区三区四区| 精品在线观看视频| 久久综合久久综合亚洲| 国产原创一区二区三区| 久久久青草青青国产亚洲免观| 激情五月婷婷综合| 久久精品一区蜜桃臀影院| 国产99久久久久久免费看农村| 久久久欧美精品sm网站| 国产成人免费9x9x人网站视频| 国产欧美一二三区| 成人精品国产一区二区4080| 中文字幕中文在线不卡住| 成人app下载| 亚洲欧美日韩国产中文在线| 色狠狠色噜噜噜综合网| 亚洲国产精品一区二区久久恐怖片| 在线观看日韩av先锋影音电影院| 一区二区三区四区亚洲| 欧美日韩国产123区| 美女在线视频一区| 国产婷婷一区二区| 暴力调教一区二区三区| 亚洲一区二区五区| 欧美一区二区三区视频在线| 国产在线视频精品一区| 国产精品网站在线观看| 色综合久久综合网欧美综合网| 亚洲一区二区三区四区不卡| 51精品国自产在线| 国产露脸91国语对白| 亚洲欧美中日韩| 欧美色精品在线视频| 美女精品自拍一二三四| 久久精品欧美一区二区三区麻豆| 91丝袜美腿高跟国产极品老师 | 另类综合日韩欧美亚洲| 久久久精品综合| 91免费观看视频| 日韩高清在线观看| 久久久久久97三级| 91成人免费在线视频| 美女看a上一区| 国产精品成人免费| 51精品久久久久久久蜜臀| 成人一区二区视频| 亚洲专区一二三| 精品久久久影院| 97久久人人超碰| 美女网站色91| 日韩美女视频19| 日韩欧美国产综合| 91捆绑美女网站| 久久国产精品区| 一区二区三区精品在线观看| 精品国产免费久久| 欧洲视频一区二区| 国产成人免费在线视频| 日韩激情中文字幕| 国产精品成人免费在线| 日韩久久免费av| 日本高清免费不卡视频| 国产精品一区二区91| 亚洲大片免费看| 中文字幕在线不卡一区| 欧美一区二区三区播放老司机| 99热这里都是精品| 精品一区二区三区在线播放| 一区二区免费视频| 国产精品美女一区二区三区| 日韩欧美在线1卡| 在线欧美小视频| 国产aⅴ综合色| 久久99热99| 午夜精品久久久久久久久久| 综合欧美亚洲日本| 国产日韩影视精品| 日韩亚洲欧美一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产成人在线看| 九九九久久久精品| 日本中文字幕一区二区有限公司| 亚洲黄色免费网站| 国产精品视频一二三| 精品sm在线观看| 欧美一区三区二区| 欧美日韩国产综合一区二区| heyzo一本久久综合| 国产老肥熟一区二区三区| 美女视频第一区二区三区免费观看网站| 亚洲激情网站免费观看| 国产精品拍天天在线| 久久精品亚洲一区二区三区浴池| 欧美精品v国产精品v日韩精品 | 日韩午夜小视频| 欧美精品日韩一区| 精品视频在线免费观看| 在线精品观看国产| 在线观看成人免费视频| 色婷婷综合中文久久一本|