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

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

?? gmcanvas.java

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


// unnamed package

import java.io.*;

//#ifdef nokia
//import com.nokia.mid.ui.FullCanvas;
//import javax.microedition.lcdui.*;
//#elifdef midp1
//import javax.microedition.lcdui.*;
//#else
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
//#endif


class GMCanvas
//#ifdef nokia
//    extends FullCanvas
//#elifdef midp1
//    extends Canvas
//#else
    extends GameCanvas
//#endif
    implements Runnable
{
    private static int MILLIS_PER_TICK = 44;
    private	static final int LAST_LEVEL = 30;

	// -------------------------------------------------------------------------------------------
	// List of game status
	// -------------------------------------------------------------------------------------------
	private static final int GM_SPLASH = 0;
	private static final int GM_FIRST = 1;
	private static final int GM_INIT = 2;
	private static final int GM_PLAY = 3;
	private static final int GM_LEVEL_COMP = 4;
	private static final int GM_GAME_OVER = 5;
	private static final int GM_INIT_LEVEL = 6;
	private static final int GM_LOOSE_LIFE = 7;
	private static final int GM_TITLE = 8;
	private static final int GM_TITLE2 = 9;
	private static final int GM_ENTER_SCORE = 10;
	private static final int GM_GAME_COMPLETE = 11;
	private static final int GM_EXIT = 14;


	// -------------------------------------------------------------------------------------------
	// Odds & Sods
	// -------------------------------------------------------------------------------------------
    private final	GameMIDlet midlet;
    private Thread 	animationThread = null;
	private boolean	isPaused		= false;
	private boolean	forceMenu 		= false;
	public 	static	Dictionary	dict;
	public	static  GameEffects ge;
	public	static	Standard stan = new Standard();
	public	long	timing = 0;
	public	boolean quit = false;
	public	static boolean bContinue = false;	// Used to identify a continued game
	public	Canvas canvas = null;				// Used in startApp to see if we have a canvas
	public	static boolean noSound = true;

	// -------------------------------------------------------------------------------------------
	// Used for scrolling
	// -------------------------------------------------------------------------------------------
	// Constants
    public 	static final int TILE_WIDTH = 16;
    public 	static final int TILE_HEIGHT = 16;
    public 	static final int MAP_TILE_WIDTH = 16;
	// Variables
	public	static int xDisplay = 0;
	public	static int yDisplay = 0;
    public	static int DISPLAY_WIDTH;
    public 	static int DISPLAY_HEIGHT;
    public	static int WIDTH_IN_TILES;
    public	static int HEIGHT_IN_TILES;
    public	static int MAP_TILE_HEIGHT;
    public  static int MAP_PIXEL_WIDTH = 0;
    public  static int MAP_PIXEL_HEIGHT = 0;
    public	static BGLayer bg;
	// Animate tiles
	public static int[] animTile = new int[30];


	// -------------------------------------------------------------------------------------------
	// Visible screen (actual screen size?)
	// -------------------------------------------------------------------------------------------
    public	static int VIS_WIDTH;
    public 	static int VIS_HEIGHT;


	// -------------------------------------------------------------------------------------------
	// List of images
	// -------------------------------------------------------------------------------------------
    public	static Image	imageMenu;
    public	static Image	imageTitle;
	/* EG
    public	static Image	imageCloud;
    public	static Image[]	imageDude = new Image[50];
    public	static Image	imageNumber;
	*/

	// -------------------------------------------------------------------------------------------
    // Keys & stuff
	// -------------------------------------------------------------------------------------------
    private static boolean[] upPressed = new boolean[3];	// array of 3:- 2 = menu input, 0&1 are for you and bluetooth
    private static boolean[] upHeld = new boolean[3];
    private static boolean[] downPressed = new boolean[3];
    private static boolean[] downHeld = new boolean[3];
    private static boolean[] leftPressed = new boolean[3];
    private static boolean[] leftHeld = new boolean[3];
    private static boolean[] rightPressed = new boolean[3];
    private static boolean[] rightHeld = new boolean[3];
    private static boolean[] firePressed = new boolean[3];
    private static boolean[] fireHeld = new boolean[3];
    private static boolean[] firing = new boolean[3];
	public	static boolean[] bLeftPressed = new boolean[3];
	public	static boolean[] bRightPressed = new boolean[3];
	public static int keyStates = 0;


	// -------------------------------------------------------------------------------------------
    // Bluetooth stuff
	// -------------------------------------------------------------------------------------------
	public static final int BT_SETUP_HOST = 1;
	public static final int BT_AWAIT_CLIENT = 2;
	public static final int BT_SETUP_JOIN = 3;
	public static final int BT_AWAIT_HOST = 4;
	public static final int BT_AWAIT_RECEIVE = 5;
	public static final int GM_CONNECTION_LOST = 50;
	public static final int BT_DELAY = 5;
	public boolean 		bBTSetup = false;
	public int			btStatus = 0;
    public BlueTooth 	disc;
    public boolean		bHost = false;
    public boolean		bMultiplayer = false;
    public boolean		updateTicks = true;
    public boolean		updateDraw = true;
    public int 			btMissCount = 0;
    public int 			btResent = 0;
    public boolean		btIn = false;
    public int 			btTick = 0;

	// -------------------------------------------------------------------------------------------
    // Kind of Bluetooth
	// -------------------------------------------------------------------------------------------
	public	static int thisDude = 0;
	public	static int otherDude = 1;
	public	static int looseLife;			// The Dude who is to loose a life because of a collision


	// -------------------------------------------------------------------------------------------
    // General game variables
	// -------------------------------------------------------------------------------------------
	public	static	int 		tickCount = 0;
	public 	static	int			gameMode = GM_SPLASH;
	public	static	int			gameLevel;
	public	static	boolean		clearSoftKey;
	// -------------------------------------------------------------------------------------------
	// Font stuff
	// -------------------------------------------------------------------------------------------
	public	final 	static Font GAME_FONT = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
	public	final 	static int 	fontHeight = GAME_FONT.getHeight();
	// -------------------------------------------------------------------------------------------
	// Options
	// -------------------------------------------------------------------------------------------
    public static final byte[] MAX_OPTIONS = {6,3,5};
	public static int 		option = 1;
	public static int		optionPage = 0;
	public static boolean[]	options = new boolean[7];
	public static int[] menuS = {0,9630,15582,15582,9630,0,0,8192,14188,16384,14188,8192,0}; 	// Y offset
	public static int[] menuC = {16384,13255,5063,-5063,-13255,-16384,16384,14188,8192,0,-8192,-14188,-16384};	// X offset


	// -------------------------------------------------------------------------------------------
	// Debug
	// -------------------------------------------------------------------------------------------
	public long fps = 0;
	public long fpsCount = 0;




//#ifdef midp1
	// -------------------------------------------------------------------------------------------
    // MIDP1 specific bollocks
	// -------------------------------------------------------------------------------------------
//    public static final int LEFT_PRESSED = 0x004;
//    public static final int RIGHT_PRESSED = 0x020;
//    public static final int DOWN_PRESSED = 0x040;
//    public static final int UP_PRESSED = 0x002;
//    public static final int FIRE_PRESSED = 0x100;
//#endif



	// -------------------------------------------------------------------------------------------
	// At last:- the constructor
	// -------------------------------------------------------------------------------------------
    GMCanvas(GameMIDlet midlet)
    {
//#ifdef midp2
        super(false);   // true = suppress key events for game keys
//#endif
        this.midlet = midlet;

		// Do as little as possible in here, and do the bulk of the setup in the GM_SPLASH & GM_FIRST gameModes
		gameMode = GM_SPLASH;
	}

    public void keyReleased(int keyCode)
    {
    	switch (getGameAction(keyCode))
		{
    		case Canvas.UP:
    			keyStates &= -UP_PRESSED-1;
    			break;
    		case Canvas.DOWN:
    			keyStates &= -DOWN_PRESSED-1;
    			break;
    		case Canvas.LEFT:
    			keyStates &= -LEFT_PRESSED-1;
    			break;
    		case Canvas.RIGHT:
    			keyStates &= -RIGHT_PRESSED-1;
    			break;
    		case Canvas.FIRE:
    			keyStates &= -FIRE_PRESSED-1;
    			break;
		}
    }

    public void keyPressed(int keyCode)
    {
		// used for entering highscore name
    	Standard.theKey = keyCode;

		// Handle softkeys. For the most part this is menu navigation code
        if ((keyCode == Standard.LEFT_SOFTKEY1 || keyCode == Standard.RIGHT_SOFTKEY1
        || keyCode == Standard.LEFT_SOFTKEY2 || keyCode == Standard.RIGHT_SOFTKEY2))
        {
			// If a menu is in play then handle navigation etc
        	if (gameMode == GM_TITLE || gameMode == GM_TITLE2 || forceMenu)
        	{
				// Left key set firePressed
        		if (keyCode == Standard.LEFT_SOFTKEY1 && (btStatus < 1 || btStatus > 4 || gameMode == GM_PLAY))
        		{
	    			if (forceMenu) firePressed[2] = true;
	    			else firePressed[0] = true;
        		}
        		// Right key manipulates menu when not establishing a bluetooth connection
        		else if ((keyCode == Standard.RIGHT_SOFTKEY1 || keyCode == Standard.RIGHT_SOFTKEY2) && (btStatus < 1 || btStatus > 4 || gameMode == GM_PLAY))
        		{
					// If right key is pressed on forced menu or main menu then exit game
        			if (optionPage == 0)
        			{
						if (disc != null) disc.close();
				    	bMultiplayer = false;
				    	if (gameMode >= GM_PLAY && gameMode <= GM_LOOSE_LIFE) storeGame();
						gameMode = GM_EXIT;
						forceMenu = false;
						isPaused = false;
						tickCount = 0;
        			}
        			else
        			{
						// Back from option page 1
        				if (optionPage == 1)
        				{
        					optionPage = 0;
        					option = 2;
    						clearSoftKey = true;
        				}
						// Back from option page 2
        				else if (optionPage == 2)
        				{
            				optionPage = 0;
        					option = 3;
    						clearSoftKey = true;
        				}
						// Back from option page 3
        				else if (optionPage == 3)
        				{
            				optionPage = 2;
        					option = 2;
    						clearSoftKey = true;
        				}
						// Back from option page 4
        				else if (optionPage == 4)
        				{
            				optionPage = 2;
        					option = 3;
    						clearSoftKey = true;
        				}
        			}
        		}

        	}
        	else
        	{
        		changePause();
        	}
        }
        else
        {
        	switch (getGameAction(keyCode))
			{
        		case Canvas.UP:
        			keyStates |= UP_PRESSED;
        			break;
        		case Canvas.DOWN:
        			keyStates |= DOWN_PRESSED;
        			break;
        		case Canvas.LEFT:
        			keyStates |= LEFT_PRESSED;
        			break;
        		case Canvas.RIGHT:
        			keyStates |= RIGHT_PRESSED;
        			break;
        		case Canvas.FIRE:
        			keyStates |= FIRE_PRESSED;
        			break;
			}
        }
    }

	// Change pause state when possible
    public void changePause()
    {

    	if (gameMode != GM_FIRST && gameMode != GM_SPLASH) isPaused = !isPaused;

    	if (isPaused)
    	{
    		if (ge != null) ge.stopSound();
    		forceMenu = (gameMode != GM_TITLE && gameMode != GM_TITLE2 && gameMode != GM_FIRST && gameMode != GM_SPLASH);
			if (forceMenu) option = 0;
			else isPaused = false;
    		btResent = 0;
    	}
    	else
    	{
			if (bMultiplayer) BlueTooth.resend();
			if (forceMenu == true) clearSoftKey = true;
    		forceMenu = false;
    	}
    }
    void init()
    {
    	imageMenu   = GameMIDlet.createImage("/i2.png");
    }

    public synchronized void start()
    {
		if (canvas == null)
		{
//#ifdef midp2
	        setFullScreenMode(true);
//#endif
	        canvas = this;
		}

	    animationThread = new Thread(this);
        animationThread.start();
		changePause();
    }


    public synchronized void stop()
    {
		if (ge != null) ge.stopSound();
		if (disc != null) disc.close();
        animationThread = null;
    }

    public void run()
    {
        Thread currentThread = Thread.currentThread();
        long timecounter = 0,
			 fpsStart = System.currentTimeMillis(),
			 endTime = 0,
			 delay = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡在线观看| 91精品国产综合久久精品| 精品污污网站免费看| 久久午夜免费电影| 亚洲成av人综合在线观看| 国产精华液一区二区三区| 欧美日韩精品欧美日韩精品一| 精品国产一区二区三区四区四| 亚洲黄色录像片| 国产99久久久国产精品潘金| 91.成人天堂一区| 一区二区在线看| 成人av中文字幕| 久久久蜜臀国产一区二区| 免费成人在线影院| 欧美精品久久一区| 亚洲成人777| 欧美丝袜丝交足nylons| 亚洲三级免费电影| av网站免费线看精品| 国产人妖乱国产精品人妖| 国产伦精一区二区三区| 精品少妇一区二区三区免费观看| 性久久久久久久| 欧美日韩和欧美的一区二区| 亚洲一区二区在线观看视频| 色综合久久久网| 亚洲另类春色国产| 精品视频在线免费| 亚洲sss视频在线视频| 色综合天天狠狠| 亚洲男女一区二区三区| 色狠狠色狠狠综合| 亚洲国产精品久久人人爱| 欧美视频在线一区| 日日夜夜精品视频免费| 6080亚洲精品一区二区| 日韩av一区二区在线影视| 日韩一区二区精品葵司在线| 久久综合综合久久综合| 久久婷婷综合激情| 国产91露脸合集magnet| 国产精品久久久久天堂| 91片在线免费观看| 亚洲国产欧美日韩另类综合| 欧美三级视频在线| 男女男精品视频| 国产午夜一区二区三区| caoporm超碰国产精品| 怡红院av一区二区三区| 欧美精品日韩一区| 国内精品国产三级国产a久久| 久久影视一区二区| 99久久久久久| 视频一区视频二区在线观看| 欧美变态tickling挠脚心| 粉嫩欧美一区二区三区高清影视| 国产精品国产三级国产三级人妇| 在线一区二区三区四区五区 | 2024国产精品| av一区二区不卡| 三级久久三级久久| 国产精品亲子伦对白| 欧美在线观看一二区| 美女任你摸久久| 中文字幕一区二区三中文字幕| 在线观看视频一区二区欧美日韩| 麻豆视频观看网址久久| 国产精品久久久久久福利一牛影视| 欧美又粗又大又爽| 国产九色sp调教91| 亚洲大片精品永久免费| 亚洲国产高清aⅴ视频| 欧美色成人综合| 成人午夜免费视频| 麻豆精品新av中文字幕| 亚洲男人都懂的| 国产欧美一区二区在线| 91精品国产综合久久精品性色| 成人综合在线网站| 另类小说综合欧美亚洲| 一区二区三区毛片| 中文字幕av一区 二区| 在线成人高清不卡| 日本韩国一区二区三区| 风间由美一区二区三区在线观看| 天堂av在线一区| 一区二区三区影院| 亚洲国产精品黑人久久久| 91精品在线观看入口| 91麻豆精品在线观看| 国产一区二区三区黄视频 | 欧美三级日韩三级| 99视频精品免费视频| 激情深爱一区二区| 日韩电影在线免费观看| 亚洲欧美成人一区二区三区| 亚洲国产高清不卡| 国产无人区一区二区三区| 欧美一区二区日韩一区二区| 欧洲av一区二区嗯嗯嗯啊| 94色蜜桃网一区二区三区| 成人亚洲精品久久久久软件| 国产在线精品免费| 韩国女主播成人在线观看| 久久成人久久爱| 久久av老司机精品网站导航| 日韩精品福利网| 午夜精品成人在线| 亚洲成av人片在线观看无码| 一级中文字幕一区二区| 亚洲欧美成人一区二区三区| 中文字幕欧美一| 国产精品久久久久国产精品日日| 久久久久亚洲蜜桃| 国产亚洲精品7777| 日本一区二区三区国色天香| 中文字幕av在线一区二区三区| 国产日本欧洲亚洲| 中文字幕在线不卡| 一区二区免费看| 污片在线观看一区二区| 秋霞影院一区二区| 精品亚洲成a人在线观看| 久久99精品久久久久久国产越南 | 欧美成人a∨高清免费观看| 日韩视频免费观看高清在线视频| 日韩欧美一级二级三级久久久| 欧美一区二区三区四区五区| 欧美一区二区三区免费观看视频| 日韩免费视频一区二区| 国产日韩亚洲欧美综合| 亚洲天堂精品在线观看| 一区二区三区在线看| 日韩一区精品视频| 国产一区二区电影| av亚洲产国偷v产偷v自拍| 欧美色网站导航| 日韩亚洲欧美成人一区| 日本一区二区三区免费乱视频 | 亚洲大型综合色站| 久久99国产精品尤物| 国产成人福利片| 欧美中文字幕不卡| 精品美女一区二区三区| 国产精品久久看| 三级影片在线观看欧美日韩一区二区 | 久久精品久久99精品久久| 粉嫩av一区二区三区粉嫩| 欧美午夜宅男影院| 久久久久久99久久久精品网站| 日韩毛片高清在线播放| 视频一区免费在线观看| 成人av在线观| 日韩欧美123| 亚洲精品一二三四区| 日韩电影网1区2区| 成人污污视频在线观看| 欧美日韩夫妻久久| 中文字幕一区二区视频| 久久成人羞羞网站| 精品污污网站免费看| 国产精品二三区| 韩国女主播成人在线| 欧美日韩成人综合天天影院| 欧美激情艳妇裸体舞| 亚洲6080在线| 99视频精品在线| 久久免费看少妇高潮| 午夜精品在线看| 色综合视频在线观看| 国产三级精品三级| 狠狠久久亚洲欧美| 欧美日韩高清一区二区不卡| 日韩码欧中文字| 成人福利在线看| 日本一区二区三区电影| 美国十次了思思久久精品导航| 日本国产一区二区| 亚洲欧洲性图库| 东方aⅴ免费观看久久av| 日韩视频一区在线观看| 亚洲第一二三四区| 日本韩国视频一区二区| 18欧美亚洲精品| 成人黄动漫网站免费app| 久久亚洲影视婷婷| 麻豆国产精品777777在线| 91麻豆精品国产自产在线观看一区| 一区二区久久久久| 日本乱人伦aⅴ精品| 亚洲免费观看高清完整版在线观看熊| 国产成人精品三级| 国产欧美中文在线| 国产精选一区二区三区| 26uuu国产日韩综合| 国产一区二区在线电影| 国产午夜亚洲精品羞羞网站| 国产精品91一区二区| 久久午夜老司机|