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

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

?? worldcanvas.java

?? MIDP1.0的橫板游戲源碼
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
	protected Image itemp;
	protected ImageInfo iitemp;
	
	protected int getType(long l){
		return (int)l/100000;
	}
	protected static ImageInfo findImageInfo(long id){
		ImageInfo temp=(ImageInfo)GameRes.find(id);
		if(temp!=null){
			return temp;
		}
		else{
			return null;
		}
	}
	public static ActionInfo findAction(long id){
		ActionInfo temp=(ActionInfo)GameRes.find(id);
		if(temp!=null){
			return temp;
		}
		else{
			return (ActionInfo)GameRes.find(id-(id%10));
		}
	}
	protected Image creature=null;
	protected void LoadCreatureImage(){
			if((resstate&CreatureImages)!=0){
				return;
			}
			else{
				resstate|=CreatureImages;
			}
			try {
				creature=Image.createImage(pngpath+"creature"+".png");
			} catch (IOException e) {
				e.printStackTrace();
			}
			int imagex=creature.getWidth();
			int imagey=creature.getHeight();
			long id=0;
			int xmod=0;
			int ymod=0;
			int width=0;
			int height=0;
			int centermod=0;
			byte Btemp[]=readFile(respath,"creimginfo");
			char cha=0;
			int scount=0;
			boolean key=false;
			for(int i=0;i<Btemp.length-1;i+=2){
				cha=CharOP.readUnicode(Btemp[i],Btemp[i+1]);
				if(cha==32){
					scount++;
					key=true;
				}
				else if(i<Btemp.length-1&&cha==13&&CharOP.readUnicode(Btemp[i+2],Btemp[i+3])==10){
					scount++;
					i+=2;
					key=true;
				}
				else if(cha==35){
					break;
				}
				if(key==true){
					switch(scount){
					case 1:
						id=CharOP.getIong();
						break;
					case 2:
						xmod=CharOP.getInt();
						break;
					case 3:
						ymod=CharOP.getInt();
						break;
					case 4:
						width=CharOP.getInt();
						break;
					case 5:
						height=CharOP.getInt();
						break;
					case 6:
						centermod=CharOP.getInt();
						scount=0;
						GameRes.insert(new ImageInfo(id,xmod,ymod,width,height,centermod-xmod));
						GameRes.insert(new ImageInfo(id-100,imagex-xmod-width,ymod+imagey/2,width,height,imagex-centermod-(imagex-xmod-width)));
						break;
					}
					key=false;
				}
				else{
					CharOP.record(cha);
				}
			}
		
	}
	protected Image ground=null;
	protected Image effect=null;
	protected void LoadGroundImage(){
			if((resstate&GroundImages)!=0){
				return;
			}
			else{
				resstate|=GroundImages;
			}
			try {
				effect=Image.createImage(pngpath+"effect"+".png");
				ground=Image.createImage(pngpath+"ground"+".png");
			} catch (IOException e) {
				e.printStackTrace();
			}
			long id=0;
			int xmod=0;
			int ymod=0;
			int width=0;
			int height=0;
			int centermod=0;
			byte Btemp[]=readFile(respath,"groeffimginfo");
			char cha=0;
			int scount=0;
			boolean key=false;
			for(int i=0;i<Btemp.length-1;i+=2){
				cha=CharOP.readUnicode(Btemp[i],Btemp[i+1]);
				if(cha==32){
					scount++;
					key=true;
				}
				else if(i<Btemp.length-1&&cha==13&&CharOP.readUnicode(Btemp[i+2],Btemp[i+3])==10){
					scount++;
					i+=2;
					key=true;
				}
				else if(cha==35){
					break;
				}
				if(key==true){
					switch(scount){
					case 1:
						id=CharOP.getIong();
						break;
					case 2:
						xmod=CharOP.getInt();
						break;
					case 3:
						ymod=CharOP.getInt();
						break;
					case 4:
						width=CharOP.getInt();
						break;
					case 5:
						height=CharOP.getInt();
						break;
					case 6:
						centermod=CharOP.getInt();
						scount=0;
						GameRes.insert(new ImageInfo(id,xmod,ymod,width,height,centermod-xmod));
						break;
					}
					key=false;
				}
				else{
					CharOP.record(cha);
				}
			}
		
	}
	protected void LoadGameAction(){
			if((resstate&Actions)!=0){
				return;
			}
			else{
				resstate|=Actions;
			}
			byte Btemp[]=readFile(respath,"action");
			char cha=0;
			int scount=-1;
			int ifend=0;
			long temp[]=new long[10];
			boolean key=false;
			for(int i=0;i<Btemp.length-1;i+=2){
				cha=CharOP.readUnicode(Btemp[i],Btemp[i+1]);
				if(cha==32){
					scount++;
					key=true;
				}
				else if(i<Btemp.length-1&&cha==13&&CharOP.readUnicode(Btemp[i+2],Btemp[i+3])==10){
					scount++;
					ifend=1;
					i+=2;
					key=true;
				}
				else if(cha==35){
					break;
				}
				if(key==true){
					switch(ifend){
					case 0:
						temp[scount]=CharOP.getIong();
						break;
					case 1:
						temp[scount]=CharOP.getIong();
						long action1[]=new long[scount];
						long action2[]=new long[scount];
						for(int n=0;n<scount;++n){
							action1[n]=temp[n+1];
							action2[n]=temp[n+1]-100;
						}
						GameRes.insert(new ActionInfo(temp[0],action1));
						GameRes.insert(new ActionInfo(temp[0]-100,action2));
						scount=-1;
						ifend=0;
						break;
					}
					key=false;
				}
				else{
					CharOP.record(cha);
				}
			}
	}
	protected void releaseGameRes(){
		ground=null;
		creature=null;
		GameRes.clear();
		resstate=0;
		System.gc();
	}
	protected static int wordnum=20;
	protected static String syswords[]=null;
	protected void loadwords(){
		if(syswords==null){
			syswords=new String[wordnum];
			byte temp[]=readFile(respath,"string");
			char cha=0;
			int scount=0;
			int ncount=0;
			boolean key=false;
			for(int i=0;i<temp.length-1;i+=2){
				cha=CharOP.readUnicode(temp[i],temp[i+1]);
				if(cha==32){
					scount++;
					key=true;
				}
				else if(i<temp.length-1&&cha==13&&CharOP.readUnicode(temp[i+2],temp[i+3])==10){
					scount++;
					i+=2;
					key=true;
				}
				else if(cha==35){
					return;
				}
				if(key==true){
					switch(scount){
					case 1:
						CharOP.getInt();
						break;
					case 2:
						syswords[ncount]=new String(CharOP.getChars());
						scount=0;
						ncount++;
						if(ncount>=wordnum){
							System.out.println("words out of bouns");
							return;
						}
						break;
					}
					key=false;
				}
				else{
					CharOP.record(cha);
				}
			}
		}
	}
	
	public static String getString(int id){
		if(id<wordnum){
			return syswords[id];
		}
		else{
			return "";
		}
	}
	protected void perpare_Res(){
		loadwords();
		GameRes=new AVLTree();
	}
	
	protected InputStream is;
	protected final String respath="/resourse/"; 
	protected final String mappath="/map/";
	protected final String objectpath="/object/";
	protected byte buff[];
	public final byte[] readFile(String path,final String sname){
		if(buff==null){
			buff=new byte[2048];
		}
		is=getClass().getResourceAsStream(path+sname+".txt");
		try {
			is.read(buff);
			is.close();
			is=null;
			System.gc();
		} catch (IOException e) {
			e.printStackTrace();
		}
		for(int i=2;i<buff.length;){
			if(buff[i]==0&&buff[i+1]==0){
				buff[i-2]=buff[i];
				buff[i-1]=buff[i+1];
				break;
			}
			buff[i-2]=buff[i];
			buff[i-1]=buff[i+1];
			i+=2;
		}
		return buff;
	}
	
	//TODO Sound
	boolean enable_Sound=false;
//	public void perpare_Sound(){
//		
//	}
	//TODO Render
	protected Canvas can=null;
	protected static Image ImageBuff=null;
	protected Graphics GIB=null;
	
	protected void clear_Ren(){
		GIB.setClip(0,0,ImageBuffWidth,ImageBuffHeight);
		GIB.setColor(R,G,B);
		GIB.fillRect(0,0,ImageBuffWidth,ImageBuffHeight);
	}
	protected void refashionImageBuff(){
		if(ImageBuff==null){
			ImageBuff=Image.createImage(ImageBuffWidth,ImageBuffHeight);
			GIB=ImageBuff.getGraphics();
			GIB.setColor(this.R,this.G,this.B);
			GIB.fillRect(0,0,ImageBuffWidth,ImageBuffHeight);
		}
	}
	protected static void flushGraphics(Graphics g){
		g.setClip(0,0,ImageBuffWidth,ImageBuffHeight);
		g.drawImage(ImageBuff,0,0,0);
	}
	protected void perpare_Ren(){
		can=this;
		refashionImageBuff();
	}
	protected void repaint_Ren(){
		can.repaint();
		can.serviceRepaints();
	}
	int drawx=0;
	int drawy=0;
	//protected void 
	protected void drawgame(long mapid,int x,int y){
		int type=getType(mapid);
		switch(type){
		case 1:
			itemp=creature;
			break;
		case 2:
			itemp=ground;
			break;
		case 3:
			itemp=effect;
			break;
		default:
			return;
		}
		iitemp=findImageInfo(mapid);
		if(iitemp==null){
			System.out.println(mapid+" "+"not"+" "+"found");
			return;
		}
		drawx=x-screenx-iitemp.centermod;
		drawy=y-screeny-iitemp.height;
		GIB.setClip(drawx,drawy,iitemp.width,iitemp.height);
		GIB.drawImage(itemp,drawx-iitemp.xmod,drawy-iitemp.ymod,0);
		itemp=null;
	}
	protected void drawsys(long mapid,int x,int y){
		int type=getType(mapid);
		switch(type){
		case 1:
			itemp=creature;
			break;
		case 2:
			itemp=ground;
			break;
		case 3:
			itemp=effect;
			break;
		default:
			return;
		}
		iitemp=findImageInfo(mapid);
		if(iitemp==null){
			System.out.println(mapid+" "+"not"+" "+"found");
			return;
		}
		drawx=x-iitemp.centermod;
		drawy=y-iitemp.height;
		GIB.setClip(drawx,drawy,iitemp.width,iitemp.height);
		GIB.drawImage(itemp,drawx-iitemp.xmod,drawy-iitemp.ymod,0);
		itemp=null;
	}
	//定義
	protected static int ImageBuffWidth=176;
	protected static int ImageBuffHeight=208;
	protected int R=222;
	protected int G=222;
	protected int B=214;
	//TODO EngineSetting
	protected void perform_EngineSetting(){
		control_EngineSetting();
		draw_EngineSetting();
	}
	protected void draw_EngineSetting(){
		GIB.setColor(160,160,147);
		GIB.fillRect(36,73,100,26);
		Font_big(GIB,222,222,214);
		GIB.drawString(getString(0),45,76,0);
		Font_middle(GIB,160,160,147);
		GIB.drawString(getString(1),4,188,0);
		GIB.drawString(getString(2),146,188,0);
	
	}
	protected void control_EngineSetting(){
		int i=get_Key();
		if(enableControl){
			if(keyIs(i,LSB_G)){
				pressed_Button(1,0);
			}
			else if(keyIs(i,RSB_G)){
				pressed_Button(2,0);
			}
		}
		
	}
	//TODO game
	protected int Level=0;//0-2
	protected static byte State_Game=0;
	protected final byte Logo_Game=0;
	protected final byte MineMenu_Game=1;
	protected final byte Load_Game=2;
	protected final byte Start_Game=3;
	protected final byte Pause_Game=4;
	protected final byte List_Game=5;
	protected final byte System_Game=6;
	protected boolean enableControl=true;
	protected int recordtime=0;
	protected void init_Game(){
		State_Game=Start_Game;
		Level=0;
	}
	protected void release_Game(){
		release_Object();
	}
	protected void control_Game(){
		int i=get_Key();
		if(enableControl){
			switch(State_Game){
			case Logo_Game:
				control_Logo(i);
				break;
			case MineMenu_Game:
				control_MineMenu(i);
				break;
			case Load_Game:
				control_LoadGame(i);
				break;
			case Start_Game:
				control_player(i);
				break;
			case Pause_Game:
				Pause_Control(i);
				break;
			case List_Game:
				break;
			case System_Game:
				GScontrol(i);
				break;
			}
		}
	}
	protected void perform_Game(){
		switch(State_Game){
		case Logo_Game:
			perform_Logo();
			break;
		case MineMenu_Game:
			perform_MineMenu();
			break;
		case Load_Game:
			LoadGame();
			break;
		case Start_Game:
			perform_background();
			perform_Object();
			damageProcess();
			showDam();
			perform_player();
			break;
		case Pause_Game:
			Pause_Show();
			break;
		case List_Game:
			break;
		case System_Game:
			GSshow();
			break;
		}
	}
	//TODO gamesys
	protected byte gsnum=0;
	protected byte gsbegin=0;
	protected byte gsend=3;
	
	protected void GSenter(){
		if(player.hp<=0){
			gsbegin=1;
			gsnum=1;
		}
		else{
			gsbegin=0;
			gsnum=0;
		}
		State_Game=System_Game;
	}
	protected void GSresume(){
		State_Game=Start_Game;
	}
	protected void GSshow(){
		switch(gsnum){
		case 0:GIB.setColor(138,138,138);GIB.fillRect(61,128,50,12);break;
		case 1:GIB.setColor(138,138,138);GIB.fillRect(61,142,50,12);break;
		case 2:GIB.setColor(138,138,138);GIB.fillRect(61,156,50,12);break;
		case 3:GIB.setColor(138,138,138);GIB.fillRect(61,170,50,12);break;
		}
		Font_middle(GIB,82,82,82);
		GIB.drawString(getString(10),63,126,0);
		Font_middle(GIB,82,82,82);
		GIB.drawString(getString(11),63,140,0);
		Font_middle(GIB,82,82,82);
		GIB.drawString(getString(5),63,154,0);
		Font_middle(GIB,82,82,82);
		GIB.drawString(getString(13),63,168,0);
	}
	
	protected void GScontrol(int i){
		if(keyIs(i,UP_G)){
			gsnum--;
			if(gsnum<gsbegin){
				gsnum=gsbegin;
			}
		}
		if(keyIs(i,DOWN_G)){
			gsnum++;
			if(gsnum>gsend){
				gsnum=gsend;
			}	
		}
		if(keyIs(i,FIRE_G)){
			switch(gsnum){
			case 0:pressed_Button(11,0);break;
			case 1:pressed_Button(12,0);break;
			case 2:break;
			case 3:pressed_Button(13,0);break;
			}
		}
	}
	//TODO pause
	protected byte scopy=0;
	protected byte cp=0;
	public void Pause(){
		if(State_Engine!=S_Game){
			return;
		}
		scopy=State_Game;
		cp=0;
		State_Game=Pause_Game;
	}
	public void resume(){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频一区二区三区| 捆绑变态av一区二区三区| 久久久久久久综合日本| 欧美日韩高清在线播放| 色婷婷精品久久二区二区蜜臀av| 精品制服美女久久| 久久国产成人午夜av影院| 天堂va蜜桃一区二区三区漫画版| 亚洲欧美另类久久久精品2019| 中文字幕第一区第二区| 日本一区二区高清| 日本一区二区三区dvd视频在线| 精品处破学生在线二十三| 日韩亚洲欧美成人一区| 日韩欧美视频一区| 精品久久久久久久一区二区蜜臀| 欧美一区二区大片| 日韩一级片在线播放| 国产精品国产三级国产专播品爱网 | 国产69精品久久777的优势| 国产一区二区三区观看| 国产精品中文字幕欧美| 国产成a人无v码亚洲福利| 岛国精品在线播放| 99精品欧美一区二区三区小说 | 国产精品高清亚洲| 亚洲欧美另类图片小说| 亚洲高清不卡在线观看| 日韩和欧美一区二区三区| 免费看欧美女人艹b| 国内精品第一页| 成人美女在线视频| 在线视频一区二区三区| 91精品国产福利| 欧美精品一区二区在线播放| 2020国产精品自拍| 国产精品不卡一区二区三区| 亚洲久草在线视频| 蜜臀av一区二区三区| 国产乱子轮精品视频| jizz一区二区| 91.麻豆视频| 久久久91精品国产一区二区三区| 国产精品美女久久久久久2018| 一区二区三区毛片| 黄色小说综合网站| 色综合中文字幕国产| 欧美日韩在线播放一区| 2021久久国产精品不只是精品| 亚洲婷婷在线视频| 另类欧美日韩国产在线| voyeur盗摄精品| 欧美一区二区三区视频在线观看 | 亚洲国产精品综合小说图片区| 蜜臀av一区二区在线免费观看| jlzzjlzz亚洲日本少妇| 欧美一区二区三区在| 国产精品麻豆99久久久久久| 亚洲成人综合视频| 懂色一区二区三区免费观看| 欧美色欧美亚洲另类二区| 欧美精品一区二区精品网| 樱花草国产18久久久久| 国产永久精品大片wwwapp| 欧美在线你懂的| 久久午夜羞羞影院免费观看| 亚洲自拍偷拍网站| 国产超碰在线一区| 欧美一级欧美三级| 亚洲天堂网中文字| 精品在线免费观看| 日本久久一区二区三区| 国产亚洲一区二区三区四区| 亚洲国产视频在线| 成人福利视频网站| 亚洲少妇30p| 麻豆国产欧美日韩综合精品二区| 91在线视频播放| 久久久国产一区二区三区四区小说| 亚洲国产成人av| 色综合中文综合网| 亚洲美女一区二区三区| 国产乱淫av一区二区三区| 91麻豆精品国产91久久久更新时间 | 欧美日韩一区二区在线视频| 国产精品久久久久精k8| 国产乱人伦偷精品视频不卡| 欧美一区二区久久久| 亚洲午夜三级在线| 91色在线porny| 中文成人综合网| 国产激情一区二区三区四区 | 国产精品一二二区| 日韩欧美国产三级电影视频| 亚洲午夜激情网页| 一本大道久久a久久综合婷婷 | 天堂在线一区二区| 欧美图片一区二区三区| 亚洲欧美二区三区| 91小视频在线| 亚洲色图一区二区| 色综合久久综合网欧美综合网| 日本一区二区久久| 白白色亚洲国产精品| 国产精品毛片高清在线完整版| 国产成人av电影在线| 久久精品视频在线看| 韩国欧美国产1区| 91精品国产高清一区二区三区| 亚洲成人tv网| 在线播放中文一区| 人人精品人人爱| 日韩免费看网站| 精品一二三四在线| 久久久久久久免费视频了| 国产久卡久卡久卡久卡视频精品| 欧美mv日韩mv国产网站| 久久www免费人成看片高清| 日韩精品一区二区三区中文精品 | 欧美图片一区二区三区| 亚洲高清免费一级二级三级| 欧美色精品在线视频| 日韩精品欧美精品| 欧美sm美女调教| 欧美自拍偷拍一区| 一区二区视频免费在线观看| 欧美性猛交xxxxxxxx| 午夜国产精品一区| 日韩一区二区电影在线| 国产传媒日韩欧美成人| 亚洲美腿欧美偷拍| 91精品国产日韩91久久久久久| 国产在线不卡视频| 一区免费观看视频| 欧美三片在线视频观看 | 欧美高清精品3d| 麻豆91精品视频| 国产三级一区二区三区| 91猫先生在线| 日本亚洲免费观看| 国产日韩欧美高清| 91成人国产精品| 理论片日本一区| 国产精品久久网站| 欧美日韩www| 国产一区二区免费在线| 亚洲色图一区二区三区| 在线播放视频一区| 国产69精品久久久久777| 亚洲国产精品久久一线不卡| 欧美第一区第二区| 91欧美一区二区| 日本成人在线不卡视频| 中文在线资源观看网站视频免费不卡| 色综合久久久久综合体桃花网| 亚洲国产成人av网| 久久精品男人天堂av| 91久久国产最好的精华液| 久久不见久久见免费视频7| 亚洲蜜桃精久久久久久久| 日韩精品一区二区在线观看| 色综合久久中文综合久久牛| 美女任你摸久久 | 狠狠色丁香婷婷综合| 亚洲欧美国产高清| 欧美日韩午夜在线视频| 亚洲一区二区三区在线播放 | 亚洲色图视频免费播放| 极品美女销魂一区二区三区| 91丨九色porny丨蝌蚪| 精品国产精品一区二区夜夜嗨| 久久久午夜精品| 久久久美女艺术照精彩视频福利播放| 日韩在线一二三区| 色香蕉久久蜜桃| 精品动漫一区二区三区在线观看 | 五月天国产精品| av电影在线观看一区| 久久精品人人做人人综合| 欧美aaaaa成人免费观看视频| 欧美日韩精品综合在线| 亚洲成人av一区二区| 欧美图片一区二区三区| 日本不卡一二三| 欧美一区二区网站| 国产麻豆成人传媒免费观看| 欧美大片一区二区| 国产一区二区三区四| 日韩精品一区二区三区视频| 成人免费高清在线观看| 欧美精品第1页| 日韩精品一级二级| 国产三级精品在线| 91九色02白丝porn| 美国毛片一区二区三区| 国产欧美日韩在线| 精品视频在线免费| 9i看片成人免费高清| 麻豆一区二区三区| 亚洲成a人v欧美综合天堂下载|