亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美成人综合网站| 欧美高清激情brazzers| 亚洲老妇xxxxxx| 日本电影欧美片| 国内精品免费**视频| 亚洲免费av高清| 久久色视频免费观看| 日本精品一区二区三区高清| 久久99精品久久久久久国产越南 | 99久久精品国产一区二区三区| 亚洲国产美女搞黄色| 久久久久久久久久久久久女国产乱 | 欧美一级一级性生活免费录像| 国产二区国产一区在线观看| 视频在线观看一区| 亚洲色图第一区| 久久精品人人做人人综合 | 亚洲国产精品天堂| 国产女人水真多18毛片18精品视频 | 香蕉成人啪国产精品视频综合网| 国产欧美精品一区aⅴ影院| 91精品国产91久久综合桃花| 91视频你懂的| 波多野结衣视频一区| 国产麻豆精品在线观看| 午夜电影一区二区三区| 亚洲色图制服诱惑| 久久综合中文字幕| 欧美一级电影网站| 欧美四级电影在线观看| 成人一级片在线观看| 精品亚洲国内自在自线福利| 日韩国产欧美在线播放| 亚洲无人区一区| 亚洲免费电影在线| 亚洲欧美激情视频在线观看一区二区三区 | 成人午夜看片网址| 国产精品一区久久久久| 狠狠色狠狠色综合系列| 久久99久久久欧美国产| 美女视频黄久久| 强制捆绑调教一区二区| 日韩av一区二区在线影视| 午夜私人影院久久久久| 天堂成人国产精品一区| 日韩av网站免费在线| 日本伊人色综合网| 亚洲国产wwwccc36天堂| 性欧美疯狂xxxxbbbb| 五月天精品一区二区三区| 视频在线观看一区二区三区| 日本成人在线网站| 久久er精品视频| 国产夫妻精品视频| 成人免费高清视频| 一本久久a久久精品亚洲| 在线视频国内一区二区| 欧美日韩精品欧美日韩精品一综合 | 国产激情视频一区二区在线观看 | 亚洲精品国产一区二区三区四区在线| 亚洲视频一区在线| 亚洲自拍偷拍av| 亚洲韩国精品一区| 午夜精品爽啪视频| 激情国产一区二区| 国产成人欧美日韩在线电影| aa级大片欧美| 欧美四级电影网| 精品日韩在线一区| 国产精品国产三级国产普通话蜜臀 | 国产午夜精品一区二区三区嫩草 | 国产一区在线精品| youjizz国产精品| 欧美三级电影精品| 欧美成人官网二区| 国产精品网站在线| 一区二区三区毛片| 精品亚洲国产成人av制服丝袜 | 亚洲第一福利视频在线| 日韩av一二三| 成人91在线观看| 欧美区一区二区三区| 久久久不卡影院| 亚洲最大色网站| 国产在线一区二区| 色婷婷亚洲一区二区三区| 欧美电影精品一区二区| 国产精品国产三级国产普通话三级 | 欧美色老头old∨ideo| 久久色成人在线| 午夜在线成人av| 粉嫩aⅴ一区二区三区四区 | 成人精品一区二区三区中文字幕| 99久久综合99久久综合网站| 欧美日韩国产天堂| 久久亚洲捆绑美女| 亚洲第一福利视频在线| 国产成人av一区二区三区在线观看| 欧洲一区二区av| 国产欧美综合在线观看第十页| 午夜欧美视频在线观看| va亚洲va日韩不卡在线观看| 日韩欧美国产精品| 性做久久久久久久久| 99国产精品久久| 久久亚洲一级片| 蜜臀久久99精品久久久久宅男| 一本色道久久综合亚洲精品按摩| 久久亚洲一区二区三区明星换脸| 亚洲成人综合视频| 99久久国产免费看| 国产香蕉久久精品综合网| 麻豆免费精品视频| 欧美日韩在线综合| 亚洲欧美国产77777| 国产大陆亚洲精品国产| 日韩一二三区视频| 亚洲123区在线观看| 91蝌蚪porny| 国产精品美女久久久久久久网站| 美女任你摸久久| 7799精品视频| 亚洲妇女屁股眼交7| 91看片淫黄大片一级在线观看| 国产精品乱码一区二三区小蝌蚪| 国产在线视频不卡二| 欧美tickling挠脚心丨vk| 日本欧美一区二区三区| 欧美男男青年gay1069videost| 亚洲精品v日韩精品| 91麻豆国产精品久久| 成人免费在线视频观看| 不卡的av电影| 中文字幕在线不卡视频| 不卡的av在线| 亚洲欧洲一区二区三区| 91欧美激情一区二区三区成人| 国产精品麻豆视频| av中文字幕亚洲| 中文字幕日韩一区| 91麻豆精品一区二区三区| 亚洲人成电影网站色mp4| 91在线免费播放| 亚洲色图一区二区三区| 日本韩国欧美一区| 亚洲午夜免费电影| 欧美在线播放高清精品| 亚洲一区二区成人在线观看| 91福利在线看| 亚洲欧美偷拍另类a∨色屁股| 99久久精品国产毛片| 国产精品美日韩| 色狠狠一区二区| 水野朝阳av一区二区三区| 91精品国产综合久久久久久久久久| 日韩精品福利网| 精品国内二区三区| 国产盗摄精品一区二区三区在线 | 国产一区二区调教| 国产欧美一区二区精品秋霞影院 | 久久国产精品色婷婷| 2020日本不卡一区二区视频| 国产69精品久久777的优势| 综合av第一页| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 日韩中文字幕亚洲一区二区va在线 | 一区二区三区高清| 欧美日韩黄视频| 国产精品乱码妇女bbbb| 一本色道久久综合亚洲aⅴ蜜桃| 午夜日韩在线电影| 欧美精品一区二区久久久| 成人av在线一区二区三区| 一区二区免费在线播放| 日韩精品一区二区三区视频播放| 国产精品 欧美精品| 一区二区三区日韩在线观看| 欧美丰满美乳xxx高潮www| 国产精品一区二区久久不卡 | 欧美日韩在线电影| 狠狠色综合播放一区二区| 国产精品家庭影院| 91麻豆精品国产91久久久使用方法| 国产麻豆精品theporn| 夜色激情一区二区| 日本一区二区视频在线| 欧美日韩亚洲综合在线| 国产ts人妖一区二区| 五月激情丁香一区二区三区| 久久久精品日韩欧美| 欧美日韩mp4| 成人av在线一区二区三区| 奇米影视一区二区三区小说| 中文字幕一区二区三区在线不卡| 91精品国模一区二区三区| 成人免费高清在线观看| 美女视频黄免费的久久| 亚洲精品国久久99热| 国产蜜臀av在线一区二区三区| 欧美区视频在线观看|