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

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

?? gametimerthread.java

?? J2ME的游戲原代碼!希望能幫助有需要幫助的師兄弟們!
?? JAVA
字號:
package javagapi;import javax.microedition.midlet.MIDlet;import javax.microedition.lcdui.Display;/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!             For speed, this is not threadsafe.	     However if the following assumptions hold,	     it should work.	     Assumptions made: read or write from	        byte or boolean is atomic operation.		The user will not press keys at a rate		that is faster than this thread can		handle them. The keys presses are stored		in an 8 slot circular buffer in GameShell.  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*//** (C) 2002 Sony Ericsson Mobile Communications AB. All rights reserved.  * Sends GATimerEvents periodically to a game.  * @author LD/SEM/GUN/MI Stefan Olsson, ecssnon  * @version 1.0  */class GameTimerThread extends Thread{    /** Used by GASetTimer and GAKillTimer to communicate the new period.      * A killed timer has the period Long.MAX_VALUE.      */    public long[] period = { Long.MAX_VALUE, Long.MAX_VALUE, Long.MAX_VALUE };    /** Used by GASetTimer and GAKillTimer to communicate to the thread the      * fact that the period has been updated.      */    public boolean[] periodUpdated = { false, false, false};    GameShell game;    MIDlet midlet;    /** GACheckForRefresh calls repaint() and       * sets this to false. The ensuing call to paint() sets it to true.      * While it is false, the game loop will only steal clock cycles,      * waiting for it to become true, so that the canvas will not repaint      * while the game is handling an event.      */    public boolean paintNotScheduled;    byte keysUpdated = 0;    /** Allocates a new GameTimerThread object. The purpose of this thread      * is to send all events except GAMenuSettingsEvent and GAStartEvent to      * the game.      * <p>      * As soon as game.gameMain returns false a GATerminateEvent is sent and      * the thread exits after the game has handled this event.      *      * @param g The game that will receive events.      */    public GameTimerThread(GameShell g){	game = g;    }    public void setMIDlet(MIDlet m) {	midlet = m;    }    /** Creates and dispatches events to the game. Once the game has begun,      * this thread will actually excecute the game code. There is only one      * GameTimerThread per game.      * <p>      * Please note that this method does a busy wait, i.e. it uses clock cycles      * even when waiting to dispatch the next timer event.      */    public void run() {	///*timer*/long t0;	///*timer*/long dt=0;	boolean notQuit = true;	GAEvent curEvent = new GAEvent();	int keyPos = -1;	long newT;	long[] oldT = new long[3];	oldT[0] = System.currentTimeMillis();	oldT[1] = oldT[0];	oldT[2] = oldT[0];	int i = 0;	long[] oldPeriod = new long[3];	try{	while(notQuit) {	    //System.out.println("Loop da loop! paintNotScheduled = "+paintNotScheduled);	    newT = System.currentTimeMillis();	    if(paintNotScheduled) {	    //System.out.println("keysUpdated = "+keysUpdated);	    if(keysUpdated>0) {		keysUpdated--;		keyPos++;		if(keyPos == 8) keyPos = 0;		curEvent.type = GameShell.GAKeyboardEvent;		curEvent.press = game.keyPressedArray[keyPos];		curEvent.key = game.keyArray[keyPos];		oldPeriod[0]=period[0];		oldPeriod[1]=period[1];		oldPeriod[2]=period[2];		//System.out.println("::::::Sending key event");		//System.out.println("MAIN THREAD SENDING KEY EVENT");		if(!game.gameMain(curEvent)) notQuit = false;		if(periodUpdated[0]) { if(oldPeriod[1]==Long.MAX_VALUE) oldT[1]=newT; periodUpdated[1]=false; }		if(periodUpdated[1]) { if(oldPeriod[1]==Long.MAX_VALUE) oldT[1]=newT; periodUpdated[1]=false; }		if(periodUpdated[2]) { if(oldPeriod[2]==Long.MAX_VALUE) oldT[2]=newT; periodUpdated[2]=false; }	    }	    else if(newT-oldT[0]>period[0]) {		//System.out.println("Timer thread 0 is late by "+(newT-oldT[0]-period[0])+" millis");		oldT[0] = newT;		curEvent.type = GameShell.GATimerEvent;		curEvent.timerId = 0;		//System.out.println("::::::Sending timer 0 event");		oldPeriod[1]=period[1];		oldPeriod[2]=period[2];		///*timer*/t0 = System.currentTimeMillis();		if(!game.gameMain(curEvent)) notQuit = false;		///*timer*/dt = System.currentTimeMillis()-t0;		//System.out.println("The call to game.gameMain took "+dt+" millis to execute");		if(periodUpdated[1]) { if(oldPeriod[1]==Long.MAX_VALUE) oldT[1]=newT; periodUpdated[1]=false; }		if(periodUpdated[2]) { if(oldPeriod[2]==Long.MAX_VALUE) oldT[2]=newT; periodUpdated[2]=false; }	    }	    else if(newT-oldT[1]>period[1]) {		//System.out.println("Timer thread 1 is late by "+(newT-oldT[1]-period[1])+" millis");		oldT[1] = newT;		curEvent.type = GameShell.GATimerEvent;		curEvent.timerId = 1;		//System.out.println("::::::Sending timer 1 event");		oldPeriod[0]=period[0];		oldPeriod[2]=period[2];		if(!game.gameMain(curEvent)) notQuit = false;		if(periodUpdated[0]) { if(oldPeriod[0]==Long.MAX_VALUE) oldT[0]=newT; periodUpdated[0]=false; }		if(periodUpdated[2]) { if(oldPeriod[2]==Long.MAX_VALUE) oldT[2]=newT; periodUpdated[2]=false; }	    }	    else if(newT-oldT[2]>period[2]) {		//System.out.println("Timer thread 2 is late by "+(newT-oldT[2]-period[2])+" millis");		oldT[2] = newT;		curEvent.type = GameShell.GATimerEvent;		curEvent.timerId = 2;		//System.out.println("::::::Sending timer 2 event");		oldPeriod[0]=period[0];		oldPeriod[1]=period[1];		if(!game.gameMain(curEvent)) notQuit = false;		if(periodUpdated[0]) { if(oldPeriod[0]==Long.MAX_VALUE) oldT[0]=newT; periodUpdated[0]=false; }		if(periodUpdated[1]) { if(oldPeriod[1]==Long.MAX_VALUE) oldT[1]=newT; periodUpdated[1]=false; }	    }	    }	}	}	catch( Exception ex ) { ex.printStackTrace(); }	//System.out.println("MAIN THREAD SENDING TERMINATE EVENT");	curEvent.type = GameShell.GATerminateEvent;	try{	game.gameMain(curEvent);	}	catch( Exception ex ) { ex.printStackTrace(); }	Display display = Display.getDisplay(midlet);	MenuReturner mr = new MenuReturner(midlet);	//System.out.println("MAIN THREAD SERIALLY INVOKING MENURETURNER");	display.callSerially(mr);    }}class MenuReturner implements Runnable {    MIDlet midlet;    public MenuReturner(MIDlet m) {	midlet = m;    }    public void run() {	if(midlet instanceof GameMIDlet)	    ((GameMIDlet)midlet).returnToMenu();    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区dvd视频在线| 色综合久久精品| 久久影院午夜论| 狠狠色丁香婷婷综合久久片| 欧美精品一区二区三区一线天视频 | 风流少妇一区二区| 国产精品久久久久精k8| 97久久超碰国产精品| 夜夜精品视频一区二区| 欧美日韩aaaaa| 精品一区在线看| 久久精品人人做人人爽97| 不卡一区二区在线| 一区二区高清在线| 678五月天丁香亚洲综合网| 久久疯狂做爰流白浆xx| 国产午夜精品福利| 欧美色手机在线观看| 免费在线观看成人| 国产精品少妇自拍| 欧美日韩在线观看一区二区 | 亚洲国产一区二区三区| 国产麻豆精品在线观看| 久久久久久久久久电影| 99精品欧美一区二区三区小说| 一区二区高清在线| 日韩精品影音先锋| av欧美精品.com| 婷婷综合五月天| 久久久久青草大香线综合精品| 成人免费视频app| 亚洲chinese男男1069| 久久亚洲欧美国产精品乐播| 日本韩国欧美三级| 韩国女主播成人在线观看| 中文字幕亚洲不卡| 欧美v国产在线一区二区三区| 一本久道久久综合中文字幕| 日本欧美一区二区三区| 国产精品丝袜在线| 日韩欧美一区在线观看| 一本久久精品一区二区| 国产成人免费在线观看| 婷婷成人综合网| 亚洲欧美一区二区久久 | 欧洲另类一二三四区| 国产伦精品一区二区三区视频青涩| 亚洲欧美电影一区二区| 久久女同性恋中文字幕| 欧美日韩在线播放一区| 成人97人人超碰人人99| 另类专区欧美蜜桃臀第一页| 亚洲午夜国产一区99re久久| 欧美国产成人精品| 欧美精品一区二区精品网| 欧美日韩免费观看一区二区三区 | 亚洲国产经典视频| 日韩精品一区二区三区四区| 欧美在线观看禁18| 菠萝蜜视频在线观看一区| 美女高潮久久久| 亚洲丶国产丶欧美一区二区三区| 中文字幕在线不卡国产视频| 欧美成va人片在线观看| 欧美一区二区三区四区视频| 欧美性大战久久久| 日本大香伊一区二区三区| www.亚洲人| 成人99免费视频| 99麻豆久久久国产精品免费 | 99在线精品一区二区三区| 国产传媒日韩欧美成人| 国内精品久久久久影院薰衣草| 午夜不卡av在线| 午夜国产精品影院在线观看| 亚洲国产另类精品专区| 亚洲一区二区三区影院| 亚洲一区在线视频观看| 亚洲综合无码一区二区| 亚洲一区视频在线| 午夜在线成人av| 亚洲成人在线观看视频| 日韩av网站免费在线| 蜜桃av一区二区三区| 奇米色777欧美一区二区| 成人国产精品免费观看视频| 国产99久久精品| 不卡视频一二三四| 色综合久久久久综合99| 欧美中文字幕不卡| 91麻豆精品国产91久久久久| 日韩一区二区三区三四区视频在线观看| 91精品国产入口| 精品久久五月天| 国产精品网曝门| 亚洲激情av在线| 午夜国产精品影院在线观看| 久久国产综合精品| 豆国产96在线|亚洲| 91老师片黄在线观看| 精品视频999| 精品国产乱码久久久久久蜜臀| 精品国产免费一区二区三区四区 | 久久精品国产99国产精品| 国产一区二区三区黄视频 | 欧美日韩中文精品| 精品国产伦一区二区三区观看方式 | 亚洲1区2区3区4区| 美女精品自拍一二三四| 国产suv一区二区三区88区| 色综合久久66| 日韩欧美国产不卡| 国产欧美日韩精品a在线观看| 亚洲天堂精品视频| 亚洲二区在线观看| 精品亚洲国内自在自线福利| 91色porny| 日韩免费视频一区二区| 亚洲人成伊人成综合网小说| 日本欧美肥老太交大片| www.欧美色图| 欧美一区二区国产| 国产精品大尺度| 日本va欧美va精品发布| 99久久精品国产一区| 91精品国产美女浴室洗澡无遮挡| 欧美国产乱子伦| 久久激情综合网| 欧美午夜免费电影| 国产人久久人人人人爽| 婷婷六月综合网| 99久久精品费精品国产一区二区| 日韩一级高清毛片| 亚洲手机成人高清视频| 国产在线不卡一区| 欧美亚洲动漫另类| 国产视频不卡一区| 免费在线观看不卡| 色一情一伦一子一伦一区| 26uuu另类欧美亚洲曰本| 依依成人综合视频| 粗大黑人巨茎大战欧美成人| 日韩一区二区精品| 亚洲三级在线播放| 国产成人在线观看| 欧美一级一级性生活免费录像| 亚洲激情校园春色| eeuss鲁一区二区三区| 精品欧美黑人一区二区三区| 亚洲成人在线免费| 欧美性xxxxxxxx| 亚洲精品老司机| www.亚洲免费av| 国产精品久久久久久亚洲伦| 国产精品一二三四五| 日韩情涩欧美日韩视频| 午夜天堂影视香蕉久久| 欧美专区亚洲专区| 亚洲一区免费在线观看| 色哟哟一区二区在线观看| 亚洲免费在线观看| 99久免费精品视频在线观看| 中文字幕不卡在线观看| 国产.欧美.日韩| 久久久久国产精品麻豆| 国内国产精品久久| 欧美精品一区二区三| 韩国v欧美v日本v亚洲v| 国产精品对白交换视频| 成人的网站免费观看| 亚洲国产精华液网站w| 懂色av一区二区在线播放| 国产日韩欧美电影| 成人黄色免费短视频| 亚洲日本一区二区| www.亚洲精品| 夜夜嗨av一区二区三区中文字幕| 色婷婷av一区二区三区之一色屋| 亚洲综合视频在线观看| 欧美日韩国产精选| 日本不卡在线视频| 欧美一级二级在线观看| 久久国产精品一区二区| 久久伊人蜜桃av一区二区| 国产91在线观看| 亚洲人123区| 欧美电影在线免费观看| 日本三级亚洲精品| 久久久久久久免费视频了| 丁香六月久久综合狠狠色| 中文字幕亚洲区| 欧美日韩精品欧美日韩精品| 日韩不卡免费视频| 久久久久综合网| 色婷婷av一区二区三区软件| 日韩精品成人一区二区在线| 国产亚洲人成网站| jlzzjlzz国产精品久久| 亚洲gay无套男同| 久久精品在线免费观看|