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

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

?? rpg_demo.java

?? 這是本人及團隊成員用j2me開發的手機游戲《騎士榮耀》
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
package rpg_demo_P;

import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
import java.util.Vector;

//import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.TiledLayer;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;

public class Rpg_DEMO extends GameCanvas implements Runnable
{   ///*******
	    ///***  下面為主要狀態
	private final static int MAIN_STATE_LOGO=-1;			//游戲處在logo狀態下
	private final static int MAIN_STATE_MENU=0;				//游戲處在Menu狀態下
	private final static int MAIN_STATE_GAMERUNNING=1;		//游戲處在運行狀態下
	private final static int MAIN_STATE_GAMEOVER=2;			//游戲處在游戲結束狀態下
	private final static int MAIN_STATE_ABOUT=3;			//游戲處在ABOUT界面狀態下
	
	////*** 下面為主要狀態下的次要狀態
	private final static int CHILD_STATE_GAMELOADING=1;		//游戲處在Loading界面狀態下
	private final static int CHILD_STATE_MAPS=2;			//游戲處在地圖界面狀態下
	private final static int CHILD_STATE_CHANGEMAP=3;		//游戲處在換圖界面狀態下
	
	////*** 下面為游戲處于地圖界面狀態下的一些狀態
	 private final static int MAP_STATE_NOMORE=0;          //地圖普通狀態
	 private final static int MAP_STATE_TACKING=1;         //地圖對話狀態
	 private final static int MAP_STATE_CHANGE=2;          //交易狀態
	 private final static int MAP_STATE_DIED=3;            //地圖下的死亡狀態
	 	 
	 //****各章地圖
	 private static final int MAP_CUNZI=1;//村子地圖
	 private static final int MAP_SENLIN=2;//森林地圖
	 private static final int MAP_SHAMO=3;//沙漠地圖
	 private static final int MAP_YANSHI=4;//巖石地圖
	 private static final int MAP_QIULIN=5;//丘陵地圖
	
	////****
	public Command back;                    //設置一個軟鍵---返回鍵
	public RpgMIDletTest controller;		//游戲運行狀態的控制者
	public Graphics g;                     //游戲畫筆
	private  static int SCREEN_WIDTH;			//屏幕的寬
	private  static int SCREEN_HEIGHT;			//屏幕的高
	private int state_Main=-1;			//主要狀態屬性的值
	private int state_Child=-1;			//次要狀態屬性的值
	private int state_Map=0;			//在地圖下的狀態
	private int menu_Selected=0;				//玩家在主菜單選項選中的項
	private int gamemenu_Selected=0;			//玩家在游戲運行時叫出菜單的時候選中的項
	private int tacking_Selected=0;           //對話時需要顯示的對話項
	private int tacking_name_Selected=0;           //對話是的對象名
	private int mapindex=1;                 //所處的地圖,用于地圖間的切換
	private int To_mapindex=0;              //要傳到的地圖
	private int keyCode;
	
	long  startTime,endTime;//線程開始,結束時間
	
	///****
	public boolean if_pause=false;			//觀察游戲是否暫停了,也就是有電話接入的時候
	public StringBuffer buffer=new StringBuffer("");
	public static int jineng=0 ;  //技能狀態與普通狀態的切換
	//***set Font
	Font mini=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL);	//小型字體
	Font medium=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);//中型字體
	static final Font lowFont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_MEDIUM);
	static final Font highFont=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_BOLD,Font.SIZE_LARGE);
	//***set Color 
	static final int  lowColor=0x00ff00ff; 
	static final int  highColor=0x00ffffff;
	static final int  highBGColor=0x00dddddd ;
	static int width; //菜單界面是的寬
	static int height;//菜單界面時的高
	static int startHeight;
	static final int spacing=highFont.getHeight();
	static final String[] mainMenu={"開始游戲","載入游戲","游戲幫助","離開游戲"};
	static final String[] gameMenu={"角色狀態","保存游戲","返回游戲","回主菜單"};
	static String npc_Name_king="鎮長";
	static String npc_Name_tiejiang="鐵匠";
	static String npc_Name_shangdian="雜貨商";
	static final String[] npc_king_tacking={" 鎮長:我的小鎮真的是個好地方,是吧少年?",
		"鎮長:勇敢的年輕人,南方出現了一只兇猛的巨熊,你能幫助鎮上的人么?",
		"東邊的沙漠上出現了一只蝎子怪,很多過往的人們受到了傷害,真希望有人能幫助那些無辜的旅人。",
		"....."
		};
	static final String[] npc_tiejiang_tacking=
	{
		"小伙子,有什么需要幫忙的嗎?",
		"想合點什么東西?",
		"把東西拿來瞧瞧。",
		"....."
	};
	static final int N72_W=176;
	static final int N72_H=208;
	static int duibai_pd=1;
	
	int about_level=0;			//給ABOUT界面的滾動條用的,用于屏幕上顯示的第一行到底是第幾行
	int about_maxlevel=0;			//給ABOUT界面使用的,表示最大可以下移的行數

	static Thread menuThread;
	////***
	 Image logo_Image; //logo圖片 
	 Image menu_Image;//主菜單圖片
	 Image sprite_hero_Image;//主角精靈圖片
	 Image map_cunzi_Image;//村子地圖圖片
	 Image touxiang_Image;//人物頭像
	 Image guaiwu_qiulin_Image;//丘陵怪物圖片
	 Image guaiwu_senlin_Image;//森林怪物圖片
	 Image guaiwu_yanshi_Image;//巖石怪物圖片
	 Image npc_shangdian_Image;//商店npc圖片
	 Image npc_tiejiang_Image;//鐵匠npc圖片
	 Image npc_king_Image;//國王npc圖片
	 Image gameover_Image;//死亡狀態圖
	 Image red_Image,blue_Image;//紅,藍藥圖
	 Image shuxing_Image;//屬性圖片
	 Image boss_Image;//boss圖片
	 Image jn_Image;//技能圖片--普通攻擊
	 
	 
	 LayerManager lm;//圖層管理者
	 Map_cuizi cunzi;//村子類對象
	 Map_shamo shamo;//沙漠類對象
	 Map_senlin senlin;//森林類對象
	 Map_yanshi yanshi;//半巖石類對象
	 TiledLayer tl_BG;//背景層
	 TiledLayer tl_PZ;//碰撞層
	 int[][] bg,pz;//背景和碰撞數組
	 static int String_Move=5;//移動字符串移動速度
	 //static int String_X=SCREEN_WIDTH;//移動字符串的X坐標
	 Player_RPG Hero;//主角精靈
	 Npc npc_shangdian,npc_tiejiang,npc_king;//npc精靈
	 int PlayerState;   //精靈的動作狀態
	 Vector vec;//用一個動態數組Vector來存儲怪物
	 Random rand;//用一個隨機數在存放怪物出來的位置
	 static public final int HERO_MOVE_FX_UP=0;
	 static public final int HERO_MOVE_FX_DOWN=1;
	 static public final int HERO_MOVE_FX_LEFT=2;
	 static public final int HERO_MOVE_FX_RIGHT=3;
	 ////***下面的是一些動作索引
	 
	    /////***主角的索引
	 int[] moveleft  = {18,19,20,21,22,23};   //向左動作的圖片索引
	 int[] moveright = {6,7,8,9,10,11};    //向右動作的圖片索引
	 int[] movedown  ={12,13,14,15,16,17};       //向下的動作圖片索引
	 int[] moveup    = {0,1,2,3,4,5};       //向上的動作圖片索引
	 int getfx;      //獲取當前精靈的方向(狀態)		
	 int[] action1 = {24,25,26,27,28,29};      //動作圖片索引1---向下攻擊
	 int[] action2 = {30,31,32,33,34,35};      //動作圖片索引2---向右攻擊
	 int[] action3 = {36,37,38,39,40,41};      //動作圖片索引3---向左攻擊
	 int[] action4 = {42,43,44,45,46,47};      //動作圖片索引4---向上攻擊
	 //int[] action5 = {36,37,38};               //主角死亡動作
	  
	   /////****怪物的索引
	      int[] guai_up={0,1,2};
	      int[] guai_down={3,4,5};
	      int[] guai_left={6,7,8};
	      int[] guai_right={9,10,11};
	      int[] guai_stop={0};
	      int[] guai_hurt_up={12,13,14};
	      int[] guai_hurt_down={15,16,17};
	      int[] guai_hurt_left={18,19,20};
	      int[] guai_hurt_right={21,22,23};
	      int[] guai_walk={6,7,8,9,10,11};
	      
	     
	 int viewWindowX=100,viewWindowY=150;   //視窗的位置
 	 
	 /////***
	    Player player;			//音樂播放器
		InputStream is;			//創建音樂流所要用到的輸入流
    public Rpg_DEMO(boolean arg0,RpgMIDletTest rpg_midlet)
    {
    	super(arg0);
    	back=new Command("返回",Command.BACK,1);
    	controller=rpg_midlet;
    	g=this.getGraphics();
    	SCREEN_WIDTH=getWidth();//屏幕的寬
    	SCREEN_HEIGHT=getHeight();//屏幕的高   	
    	width=getWidth();
		height=getHeight();
		vec=new Vector();
		rand=new Random();
		//System.out.println(SCREEN_WIDTH);
		//System.out.println(SCREEN_HEIGHT);
		startHeight=(highFont.getHeight()*mainMenu.length)+((mainMenu.length-1)*spacing);
		startHeight=(height-startHeight)/2;
		//this.setCommandListener(this);
		setFullScreenMode(true);		//設置當前顯示模式為全屏模式
//		System.out.println(SCREEN_WIDTH);
//		System.out.println(SCREEN_HEIGHT);
		try
		{
			logo_Image=Image.createImage("/logo2.png");
			//menu_Image=Image.createImage("/hero1.png"); //在DrawMenu里面有這個
			map_cunzi_Image=Image.createImage("/map_cun zi yan shi.png");
			//sprite_hero_Image=Image.createImage("/所有組合.png");
			touxiang_Image=Image.createImage("/touxiang.png");
			red_Image=Image.createImage("/red2.png");
			blue_Image=Image.createImage("/blue2.png");
			jn_Image=Image.createImage("/jian.png");
			shuxing_Image=Image.createImage("/shuxing.png");
		}catch(IOException e)
		{
			e.printStackTrace();
			System.out.println("this here !");
		}
		
    }
    
	public void run()
	{
		// TODO 自動生成方法存根
        while(!if_pause)
        {
        	startTime=System.currentTimeMillis();//得到線程一個循環的開始時間
        	switch(state_Main)
        	{
        	case MAIN_STATE_LOGO:
        		DrawLogo();
				logo_Image=null;
				//System.out.println("run here_LOGO");
				state_Main=MAIN_STATE_MENU;		//draw了Logo以后切換到菜單界面
				try 
				{
					is=getClass().getResourceAsStream("/background.mid");			//創建播放器
					player=Manager.createPlayer(is,"audio/midi");
					player.realize();
					player.setLoopCount(-1);		//開始播放MENU菜單的音樂
					player.start();
				} 
				catch (MediaException e) 
				{
					e.printStackTrace();
				}
				catch (IOException e)
				{
					e.printStackTrace();
				}
				break;
        	case MAIN_STATE_MENU:
        		DrawMenu();
        		/*menu_Image=null;
        		System.out.println("run here_MENU");*/
//				flushGraphics();
				break;
        	case MAIN_STATE_GAMERUNNING:
        		
        		
        	///run s	
        		switch(state_Child)
        		{
        		case CHILD_STATE_GAMELOADING:				
					DrawLoading();
					state_Child=CHILD_STATE_MAPS;
					state_Map=MAP_STATE_NOMORE;//游戲讀取完畢的后轉到地圖界面狀態
					try 
					{
						player.stop();
						player.close();
						is=getClass().getResourceAsStream("/map1.mid");
						player=Manager.createPlayer(is,"audio/midi");
						player.realize();
						player.setLoopCount(-1);
						player.start();
					}catch (MediaException e) 
					{
						e.printStackTrace();
					}
					catch (IOException e)
					{
						e.printStackTrace();
					} 
					break;
        		case CHILD_STATE_MAPS:
        			switch(state_Map)
        			{
        			case MAP_STATE_NOMORE:
        				render();
        				hero_Judge();
        				npc_Judge();
        				guai_Judge();  
        				/*System.out.println("++++"+Hero.px);
        				System.out.println("----"+Hero.py);*/
        				break;
        			case MAP_STATE_TACKING:
        				//System.out.println("start tacking!");
        				switch(tacking_name_Selected)
        				{
        				case 1:
        				DrawTacking(npc_king_tacking);
                            if(tacking_Selected==npc_king_tacking.length-1)
                            {
                            	tacking_Selected=0;
                            	state_Map=MAP_STATE_NOMORE;
                            }
                            break;
        				case 2:
        					DrawTacking(npc_tiejiang_tacking);
                            if(tacking_Selected==npc_tiejiang_tacking.length-1)
                            {
                            	tacking_Selected=0;
                            	state_Map=MAP_STATE_NOMORE;
                            }
        					break;
        				}
        				break;
        			case MAP_STATE_CHANGE:
        				DrawGameMenu();
        				break;
        			case MAP_STATE_DIED:
        				
        				state_Main=MAIN_STATE_GAMEOVER;
        				break;
        			}
        			break;      			
        		case CHILD_STATE_CHANGEMAP:
        			//System.out.println("!!!!!!!!!!!!!change map!");
        			 switch(mapindex)
     				{
     				case MAP_CUNZI:
     					chang_Map(MAP_CUNZI,To_mapindex);
     					break;
     				case MAP_SENLIN:
     					chang_Map(MAP_SENLIN,To_mapindex);
     					break;
     				case MAP_SHAMO:
     					chang_Map(MAP_SHAMO,To_mapindex);
     				case MAP_YANSHI:
     					chang_Map(MAP_YANSHI,To_mapindex); 
     					break;
     				}       			
        			//DrawLoading();			//還要把畫面轉到地圖讀取狀態
					state_Child=CHILD_STATE_MAPS;
					state_Map=MAP_STATE_NOMORE;
					break;
        		}//end child_state	
        			break;       		
        	case MAIN_STATE_GAMEOVER:
        		drawGameover(); 
        		try 
				{   
        			player.stop();
					player.close();
					is=getClass().getResourceAsStream("/background.mid");			//創建播放器
					player=Manager.createPlayer(is,"audio/midi");
					player.realize();
					player.setLoopCount(-1);		//開始播放MENU菜單的音樂
					player.start();
				} 
				catch (MediaException e) 
				{
					e.printStackTrace();
				}
				catch (IOException e)
				{
					e.printStackTrace();
				}
        		state_Main=MAIN_STATE_MENU;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人一区二区精品非洲| 久久久久久综合| 欧美精品国产精品| 久久久亚洲高清| 亚洲资源在线观看| 国产一区二区三区视频在线播放 | 18欧美亚洲精品| 美女在线观看视频一区二区| 91捆绑美女网站| 2021中文字幕一区亚洲| 香蕉久久夜色精品国产使用方法| 国产盗摄一区二区三区| 欧美一二三四在线| 亚洲国产另类av| 91论坛在线播放| 久久精品一区二区三区四区| 天天免费综合色| 一本色道亚洲精品aⅴ| 欧美激情一区二区三区不卡| 免费不卡在线观看| 欧美成人国产一区二区| 成人av资源在线观看| 91精品国产一区二区三区蜜臀| 中文字幕在线不卡国产视频| 国产在线国偷精品免费看| 国产日韩欧美激情| 另类欧美日韩国产在线| 欧美日韩激情一区| 亚洲午夜私人影院| 91豆麻精品91久久久久久| 亚洲日本va午夜在线影院| 国产成人福利片| 国产午夜精品在线观看| 国产乱妇无码大片在线观看| 欧美精品一区二区三区一线天视频 | 久久亚洲精华国产精华液| 全国精品久久少妇| 91麻豆精品国产综合久久久久久| 日本一区二区成人| 在线视频一区二区三区| 中文字幕乱码久久午夜不卡| 国产一区二区三区四区在线观看| 日韩午夜激情视频| 欧美aa在线视频| 日韩欧美电影在线| 国产一区二区三区av电影| 久久久久久97三级| 成人av在线资源网站| 综合激情网...| 在线观看不卡一区| 三级在线观看一区二区| 日韩三级精品电影久久久| 国产精品一区二区三区四区| 国产精品不卡一区二区三区| 日本高清不卡在线观看| 激情综合色丁香一区二区| 久久久久久亚洲综合| 成人av综合一区| 午夜欧美大尺度福利影院在线看| 91麻豆免费观看| 99国产麻豆精品| 亚洲色图制服诱惑 | 91美女精品福利| 亚洲国产中文字幕在线视频综合| 91精品欧美久久久久久动漫| 黄色日韩三级电影| 亚洲三级免费电影| 制服丝袜亚洲网站| 国产精品99久久久久| 亚洲精品午夜久久久| 日韩一级二级三级精品视频| 成人午夜视频福利| 日韩在线观看一区二区| 亚洲国产精品激情在线观看 | 丁香另类激情小说| 亚洲线精品一区二区三区| 精品久久久久久无| 在线免费观看不卡av| 国模大尺度一区二区三区| 一区二区欧美国产| 久久精品水蜜桃av综合天堂| 欧美视频完全免费看| 粉嫩高潮美女一区二区三区| 美女一区二区在线观看| 亚洲视频在线观看三级| 精品国产乱码久久久久久浪潮| 91影院在线观看| 国产一区二区看久久| 婷婷久久综合九色综合伊人色| 国产精品高潮呻吟| 久久婷婷一区二区三区| 欧美群妇大交群的观看方式| 91麻豆精东视频| 国产盗摄一区二区| 激情综合色丁香一区二区| 午夜私人影院久久久久| 亚洲欧美一区二区三区国产精品 | 久久99精品久久久| 亚洲高清在线精品| 亚洲精品成人悠悠色影视| 国产欧美一区二区在线观看| 欧美大黄免费观看| 欧美日韩大陆一区二区| 91高清视频免费看| 色94色欧美sute亚洲线路一ni| 国产99久久久精品| 国产成人99久久亚洲综合精品| 久久av老司机精品网站导航| 日韩精品久久理论片| 亚洲动漫第一页| 亚洲国产成人av网| 亚洲最大的成人av| 夜夜精品浪潮av一区二区三区| 日韩一区中文字幕| 亚洲欧洲精品一区二区精品久久久| 国产亚洲成aⅴ人片在线观看| 精品久久久久av影院| 精品国产乱子伦一区| 国产精品久久久久久妇女6080 | 午夜视频在线观看一区二区三区| 中文字幕亚洲精品在线观看| 欧美激情中文字幕一区二区| 久久久久高清精品| 国产日韩av一区| 国产精品麻豆视频| 国产精品电影院| 亚洲人成影院在线观看| 美腿丝袜一区二区三区| 蜜臂av日日欢夜夜爽一区| 久久99精品国产| 国产成人自拍高清视频在线免费播放| 激情综合网激情| 成人免费看视频| 91美女在线看| 欧美精品视频www在线观看| 欧美一区二区在线观看| 精品久久人人做人人爱| 国产清纯在线一区二区www| 国产精品久久久久久久第一福利| 一区二区三区成人| 国产成人亚洲综合a∨婷婷| 蜜臀精品一区二区三区在线观看| 久久精品国产亚洲高清剧情介绍 | 日韩美女视频一区二区在线观看| 精品福利一区二区三区 | 国产乱人伦偷精品视频免下载| 国产成人精品www牛牛影视| 99精品欧美一区| 欧美一区二区视频在线观看2020| 久久久久久久久久美女| 亚洲精品videosex极品| 日本亚洲三级在线| www.欧美色图| 在线播放中文一区| 国产精品免费看片| 日本视频一区二区三区| 懂色一区二区三区免费观看 | 成人激情图片网| 91麻豆精品国产91久久久使用方法 | 欧美性受xxxx黑人xyx性爽| 欧美日韩一区不卡| 国产亚洲美州欧州综合国| 一区2区3区在线看| 国产在线不卡一卡二卡三卡四卡| 91影院在线观看| 亚洲精品一区二区三区四区高清| 亚洲视频每日更新| 国产美女久久久久| 欧美另类变人与禽xxxxx| 欧美国产成人精品| 日韩在线播放一区二区| av网站一区二区三区| 日韩精品影音先锋| 亚洲福利一二三区| 99久久国产免费看| 久久午夜老司机| 热久久一区二区| 欧美三级日韩在线| 国产精品国产馆在线真实露脸| 免费一级欧美片在线观看| 色香蕉久久蜜桃| 中文字幕精品一区二区精品绿巨人 | 亚洲婷婷在线视频| 国产麻豆日韩欧美久久| 91麻豆精品国产无毒不卡在线观看| 亚洲视频在线一区观看| 色吧成人激情小说| 日韩午夜av电影| 亚洲444eee在线观看| 99国产精品久久久久久久久久| 久久久久久久久久久久久女国产乱 | 色综合久久六月婷婷中文字幕| 精品久久久久一区| 午夜电影一区二区三区| 在线一区二区三区四区五区| 一区二区中文字幕在线| 成人精品视频.| 中文字幕免费观看一区| 粉嫩aⅴ一区二区三区四区 | 国产成人综合视频|