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

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

?? gmcanvas.java

?? 手機藍牙驅動和應用實例源碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:

		// This ends when animationThread is set to null, or when
		// it is subsequently set to a new thread; either way, the
		// current thread should terminate
		long startTime;
		while (currentThread == animationThread)
		{
			startTime = System.currentTimeMillis();
			btIn = false;


			// -------------------------------------------------------------------------------------------
			// Bluetooth stuff
			// -------------------------------------------------------------------------------------------
			if (bMultiplayer && !forceMenu)
			{
				// Recieve some data (if there's any to recieve)
				int i = disc.retrieve();
				btTick = (i & 0x0000ffff);

				if ((tickCount & 0x0000ffff) == (i & 0x0000ffff))
				{
					leftPressed[1]  = ((i&0x00010000) == 0x00010000);
					rightPressed[1] = ((i&0x00020000) == 0x00020000);
					upPressed[1] 	= ((i&0x00040000) == 0x00040000);
					downPressed[1]  = ((i&0x00080000) == 0x00080000);
					firePressed[1] 	= ((i&0x00100000) == 0x00100000);
					MILLIS_PER_TICK = 44;
					updateTicks = true;
					btMissCount = 0;
					btResent = 0;
				}
				else
				{
					updateTicks = false;
					btMissCount++;
					if (btMissCount > 10)
					{
						sendBlueTooth();
						btMissCount = 0;
						btResent++;
					}
					if (btResent > BT_DELAY)
					{
						MILLIS_PER_TICK = 44;
						updateDraw = true;
					}
					else
					{
						MILLIS_PER_TICK = 5;
						updateDraw = false;
					}
				}
			}

			// -------------------------------------------------------------------------------------------
			// Don't advance game or draw if canvas is covered by
			// a System screen.
			// -------------------------------------------------------------------------------------------
			if (isShown())
			{
				if (updateTicks) tick();
				else btAbort();

				if (animationThread != null)
				{
//#ifdef midp2
					if (updateDraw || updateTicks) draw();
					flushGraphics();
//#else
//					repaint(0, 0, VIS_WIDTH, VIS_HEIGHT);
//					serviceRepaints();
//#endif
				}
			}
			else if (gameMode == GM_FIRST || gameMode == GM_SPLASH) tick();

			if (quit) midlet.menuListQuit();

			endTime = System.currentTimeMillis();


			// -------------------------------------------------------------------------------------------
			// Frame count calculation stuff
			// -------------------------------------------------------------------------------------------
			if (endTime-fpsStart > 1000)
			{
				fpsStart = System.currentTimeMillis();
				fps = fpsCount;
				fpsCount = 0;
			}
			else
			{
				fpsCount++;
			}


			try
			{
				if (endTime-startTime < (MILLIS_PER_TICK+1))
				{
					synchronized (this)
					{
						wait((MILLIS_PER_TICK+1) - (endTime-startTime));
					}
//						Thread.sleep((MILLIS_PER_TICK+1) - (endTime-startTime));
					timing = (MILLIS_PER_TICK+1) - (endTime-startTime);
				}
				else
				{
					synchronized (this)
					{
						wait(2);
					}
					timing = 0;
				}
			}
			catch (InterruptedException ex)
			{
				// won't be thrown
//System.out.println("Shoite:- " +ex.getMessage());
			}
		}
    }



	// -------------------------------------------------------------------------------------------
	// The guts of it:- Performs actions based on current game state held in gameMode
	// -------------------------------------------------------------------------------------------
    void tick()
    {
		if (!isPaused && !bBTSetup)
		{
			tickCount++;

			switch (gameMode)
			{

				// -------------------------------------------------------------------------------------------
				// Load a title screen to be displayed while running GM_FIRST
				// -------------------------------------------------------------------------------------------
				case GM_SPLASH:	// Do any main game initialization here
			    	imageTitle   = GameMIDlet.createImage("/t.png");
			    	VIS_WIDTH = getWidth();
			    	VIS_HEIGHT = getHeight();
			    	gameMode = GM_FIRST;
					break;

				// -------------------------------------------------------------------------------------------
				// Do any main game initialization here
				// -------------------------------------------------------------------------------------------
				case GM_FIRST:	// Do any main game initialization here

					// Deal with sound first
//#ifndef nokiaSound
					try
					{
						Class.forName("javax.microedition.media.Player");
						ge = new GameEffects();
						noSound = false;
					}
					catch (ClassNotFoundException ignore2)
					{
						noSound = true;
					}
//#else
//						ge = new GameEffects();
//						noSound = false;
//#endif
					if (ge != null) GameEffects.soundOn = true;

					// Initialize screen display stuff
					VIS_WIDTH = getWidth();
					VIS_HEIGHT = getHeight();

					// Load the graphics
					init();


					// Init any other variable here


					// Setup settings
					// 1. The menu items available
					for (int i = 0; i < MAX_OPTIONS[0]; i++)
					{
						options[i] = true;
					}

					Standard.setupHiscore(18+6, (VIS_HEIGHT-fontHeight), fontHeight);
			        Standard.getSettings(this);
					Standard.setSoftKey(this);
//#ifdef useBT
					if (options[0]) option = 0;
					try
					{
						Class.forName("javax.bluetooth.BluetoothStateException");
					}
					catch (ClassNotFoundException ignore2)
					{
						options[2] = false;
					}
//#else
//					options[2] = false;
//#endif

					// Finally set new gameMode and reset the tick counter
					gameMode = GM_TITLE;
					tickCount = 0;
					break;


				// -------------------------------------------------------------------------------------------
				// Loads the title.png and set menus to start + any other stuff that may be
				// nulled during game but needed for title. Also validate payment if required.
				// -------------------------------------------------------------------------------------------
				case GM_TITLE:		// Not too sure about this game mode:- currently loads the title.png if need be
//						imageTitle = null;
//						imageTitle   = GameMIDlet.createImage("/title.png");
						optionPage = 0;

						// Setup text labels for menus if not already done
						if (Standard.imageText[0] == null)
						{
							for (int i = 0; i < 18; i++)
							{
								StringBuffer b = new StringBuffer(dict.getString(Dictionary.MENU_0+i));
								Standard.createImageText(i,GAME_FONT,b);
							}
						}


						// Reset any other variables here


						gameMode = GM_TITLE2;
					break;


				// -------------------------------------------------------------------------------------------
				// Start the music if need be and check menu
				// -------------------------------------------------------------------------------------------
				case GM_TITLE2:
//#ifdef useMusic
					if (ge != null && tickCount == 1) ge.playMenu();
//#endif
					// Check the menu to update gameMode
					if (tickCount>1) updateMenu((leftPressed[0] && !leftHeld[0]),(rightPressed[0] && !rightHeld[0]),(firePressed[0] && !fireHeld[0]));
					break;


				// -------------------------------------------------------------------------------------------
				// Init for the start of a new game
				// -------------------------------------------------------------------------------------------
				case GM_INIT:
					// Stop menu music
					if (ge != null) ge.stopSound();


					// Zero scores etc

					// Set new gameMode to init a new level
					gameMode = GM_INIT_LEVEL;
					options[0] = true;
					tickCount = 0;
					break;

				case GM_INIT_LEVEL:
					/* An example of what we could do here
					if (tickCount == 1)
					{
						// Init level variables
					}
					if (tickCount > 1 && tickCount < A_Pause_animation_time_for_the_init_level)
					{
						// Do some animation
					}

					if (tickCount >= A_Pause_animation_time_for_the_init_level)
					{
						gameMode = GM_PLAY;
					}
					*/

					// For now though we'll just start the game
					gameMode = GM_PLAY;
					break;

				case GM_PLAY:
					// Process game loop here
					break;

				case GM_LOOSE_LIFE:
					break;

				case GM_LEVEL_COMP:
//					gameLevel++;
					gameMode = GM_INIT_LEVEL;
					break;

				case GM_GAME_OVER:
					{
						gameMode = GM_TITLE;
						options[0] = false;
						StringBuffer buf = new StringBuffer(dict.getString(Dictionary.INT_CONN+Standard.hsSubmit));
						Standard.wrapperLines(GAME_FONT, fontHeight, buf, DISPLAY_WIDTH-24, (DISPLAY_HEIGHT>>1)-8);
						tickCount = 0;
					}
					break;
				case GM_CONNECTION_LOST:
					break;
				case GM_GAME_COMPLETE:
					if (tickCount == 1)
					{
						StringBuffer b = new StringBuffer(dict.getString(Dictionary.COMP2));
						Standard.wrapperLines(GAME_FONT,fontHeight,b,DISPLAY_WIDTH-20,((fontHeight*4)+8)-4);
						if (bMultiplayer)
						{
							if (disc != null) disc.close();
							bMultiplayer = false;
						}
					}
					else if ((tickCount>>1) > ((Standard.totLines+14)*fontHeight))
					{
						tickCount = 0;
						gameMode = GM_GAME_OVER;
					}
					break;

				case GM_EXIT:
					quit = true;
					break;
			}
			getKeys(true);
		}
		else
		{
			if (bBTSetup)
			{
//				//System.out.println("In bBTSetup");
				switch (btStatus)
				{
					case BT_SETUP_HOST:		// Host a game
						if (!bHost && BlueTooth.isConnected() && disc != null) disc.close();
						try
						{
							if (disc == null) disc = new BlueTooth();
							//System.out.println(BlueTooth.ErrorMessage);
							disc.hostGame();
							btStatus = BT_AWAIT_CLIENT;
							StringBuffer buf = new StringBuffer(dict.getString(Dictionary.BT_WAIT_JOIN));
							Standard.wrapperLines(GAME_FONT, fontHeight, buf, DISPLAY_WIDTH-24, (DISPLAY_HEIGHT>>1)-8);
							bHost = true;
						}
						catch (Exception e)
						{
							//System.out.println(e.getMessage());
						}
						break;
					case BT_AWAIT_CLIENT:		// Wait for connection from client
						tickCount++;
						if (BlueTooth.gameFound)
						{
				        	BlueTooth.send(0x11110000);
				        	disc.startReceive();
				        	btStatus = BT_AWAIT_RECEIVE;
						}
						else if (BlueTooth.ConnectCancelled)
						{
							bBTSetup = false;
							btStatus = 0;
						}
						break;
					case BT_SETUP_JOIN:		// Join a game
						if (bHost && BlueTooth.isConnected() && disc != null) disc.close();
						try
						{
							if (disc == null) disc = new BlueTooth();
							//System.out.println(BlueTooth.ErrorMessage);
							disc.joinGame();
							btStatus = BT_AWAIT_HOST;
							StringBuffer buf = new StringBuffer(dict.getString(Dictionary.BT_SEARCH_HOST));
							Standard.wrapperLines(GAME_FONT, fontHeight, buf, DISPLAY_WIDTH-24, (DISPLAY_HEIGHT>>1)-8);
							bHost = false;
////System.out.println("Join done!");
						}
						catch (Exception e)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性做久久久久久免费观看欧美| 国产精品一区二区久激情瑜伽| 日韩国产欧美一区二区三区| 丁香婷婷综合色啪| 欧美唯美清纯偷拍| 国产精品久久久久毛片软件| 麻豆专区一区二区三区四区五区| 一本到不卡精品视频在线观看| 欧美成人性战久久| 视频一区二区不卡| 欧美日韩国产在线观看| 国产精品国产三级国产普通话蜜臀| 日韩国产精品久久久| 色综合av在线| 亚洲日本在线观看| jlzzjlzz亚洲女人18| 国产午夜精品福利| 激情av综合网| 久久影院午夜论| 国内精品在线播放| 精品久久一二三区| 久久精品噜噜噜成人av农村| 91麻豆精品国产自产在线| 亚洲综合视频网| 欧洲亚洲国产日韩| 夜夜嗨av一区二区三区| 91国产成人在线| 一区二区三区四区五区视频在线观看| www.激情成人| 最新成人av在线| 色婷婷综合在线| 亚洲综合丁香婷婷六月香| 欧美性色综合网| 日韩电影一二三区| 日韩欧美中文字幕制服| 韩国视频一区二区| 国产欧美日韩另类一区| 成人动漫中文字幕| 亚洲色大成网站www久久九九| 一本大道av一区二区在线播放| 亚洲综合在线电影| 7777精品久久久大香线蕉| 精品在线免费观看| 中文字幕免费观看一区| 色噜噜狠狠色综合欧洲selulu| 亚洲国产日韩一级| 日韩色视频在线观看| 韩国av一区二区三区四区| 国产色婷婷亚洲99精品小说| 成人爱爱电影网址| 亚洲午夜久久久| 精品国偷自产国产一区| 懂色av一区二区三区蜜臀| 亚洲蜜桃精久久久久久久| 欧美另类高清zo欧美| 国产精品亚洲第一| 一区二区三区四区精品在线视频| 91麻豆精品国产91久久久久| 蜜桃一区二区三区四区| 国产日韩欧美电影| 欧美日本在线一区| 国产高清精品久久久久| 亚洲精品videosex极品| 欧美一级生活片| 成人高清视频免费观看| 亚瑟在线精品视频| 国产精品久久久久精k8| 91高清在线观看| 久久不见久久见中文字幕免费| 国产精品看片你懂得| 欧美一区午夜精品| 成人黄色av网站在线| 蜜臀国产一区二区三区在线播放| 中文文精品字幕一区二区| 欧美三级蜜桃2在线观看| 国产成人日日夜夜| 日韩精品久久理论片| 亚洲婷婷在线视频| 2020日本不卡一区二区视频| 在线观看日韩av先锋影音电影院| 国产福利不卡视频| 免费的国产精品| 综合色天天鬼久久鬼色| 久久老女人爱爱| 91精品久久久久久久久99蜜臂| 成人三级伦理片| 国产毛片一区二区| 日韩高清一区在线| 一区二区三区久久| 亚洲欧洲日韩一区二区三区| 精品久久人人做人人爱| 欧美老人xxxx18| 日本精品一区二区三区高清 | 国产不卡视频在线播放| 日韩影院免费视频| 一区二区三区国产精华| 国产精品理论在线观看| 国产日韩欧美综合一区| 日韩一级大片在线观看| 欧美日韩一区二区三区高清| 色婷婷狠狠综合| 一本一道久久a久久精品| 成人影视亚洲图片在线| 国产精品夜夜爽| 国产一区二区不卡在线| 国产伦精品一区二区三区在线观看 | 在线亚洲+欧美+日本专区| 波多野结衣一区二区三区 | 91丨国产丨九色丨pron| 国产高清不卡一区| 国产精品一区二区果冻传媒| 丰满白嫩尤物一区二区| 国产91清纯白嫩初高中在线观看| 国产精品自产自拍| 国产乱人伦偷精品视频不卡 | 精品久久久久久久久久久久包黑料 | 国产精品久久毛片a| 中日韩av电影| 国产精品理论在线观看| 亚洲特黄一级片| 亚洲精品国产无套在线观| 亚洲欧美日韩在线| 亚洲国产一区视频| 亚洲成在线观看| 三级欧美在线一区| 久久99久久99| 国产精品亚洲午夜一区二区三区| 国产激情一区二区三区桃花岛亚洲| 国产精品一二一区| 97se亚洲国产综合自在线不卡| 一本色道a无线码一区v| 欧美色综合影院| 精品国产123| 欧美国产精品一区| 亚洲与欧洲av电影| 蜜臀av性久久久久蜜臀aⅴ| 国产在线不卡视频| 99热99精品| 欧美日韩在线综合| 精品日韩一区二区| 国产欧美日韩在线看| 玉米视频成人免费看| 亚洲第一二三四区| 日韩精品欧美成人高清一区二区| 国产乱人伦精品一区二区在线观看| 成人动漫一区二区三区| 欧美日韩午夜在线| 久久色视频免费观看| 亚洲婷婷在线视频| 美腿丝袜在线亚洲一区| 波多野结衣一区二区三区| 在线播放91灌醉迷j高跟美女| 欧美一区二区三区视频免费| 国产精品每日更新在线播放网址| 亚洲一区二区影院| 国产盗摄一区二区| 欧美日韩一区二区三区在线| 精品国产免费人成电影在线观看四季 | 调教+趴+乳夹+国产+精品| 国产一区91精品张津瑜| 欧美亚一区二区| 国产网站一区二区| 亚洲免费观看在线视频| 韩国女主播成人在线| 欧美日韩卡一卡二| 国产精品亲子乱子伦xxxx裸| 日韩avvvv在线播放| 99国产精品久| 国产视频911| 免费高清在线视频一区·| 色婷婷一区二区| 国产亲近乱来精品视频| 日韩av在线播放中文字幕| 99这里都是精品| 久久久久久久综合日本| 日本亚洲免费观看| 欧美三片在线视频观看| 亚洲人成网站在线| 成人av电影在线| 久久久久久久久久久99999| 五月婷婷久久综合| 欧美亚洲一区三区| 最新国产成人在线观看| 成人午夜碰碰视频| 久久久久久久久97黄色工厂| 精品一区二区国语对白| 日韩欧美一区电影| 青青青爽久久午夜综合久久午夜| 欧美无砖专区一中文字| 亚洲一二三四在线观看| 91丝袜国产在线播放| 中文天堂在线一区| www.综合网.com| 国产精品久久久久久久浪潮网站| 国产夫妻精品视频| 久久久青草青青国产亚洲免观| 韩国女主播成人在线| 久久日一线二线三线suv| 国产一区二区中文字幕| 精品久久久久久久久久久久包黑料 |