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

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

?? worldcanvas.java

?? 一款出色得橫板過關游戲源代碼
?? 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一区二区三区免费野_久草精品视频
91精品国产欧美一区二区成人| 亚洲欧洲精品天堂一级 | 在线观看日产精品| 欧美精品v日韩精品v韩国精品v| 久久奇米777| 久久久国产午夜精品| 视频一区二区中文字幕| 久久久99久久| 午夜欧美视频在线观看| 国产三级精品在线| 精品国产91洋老外米糕| 欧美日韩国产成人在线免费| 91视频观看视频| 国产成人精品免费视频网站| 中文字幕亚洲视频| 久久er99精品| 亚洲综合在线观看视频| 久久亚洲一级片| 日韩限制级电影在线观看| 99re热视频精品| 成人国产一区二区三区精品| 精品在线亚洲视频| 久久精品999| 日韩av一二三| 午夜精品在线看| 亚洲成人精品一区| 午夜精品福利在线| 亚洲高清免费观看 | 欧美日韩激情在线| 在线观看视频91| 欧美亚洲愉拍一区二区| 欧美视频一区二区| 欧美精品日韩一区| 精品国内片67194| 26uuu精品一区二区| 久久精品一级爱片| 欧美韩日一区二区三区四区| 欧美精品在线视频| 91亚洲永久精品| 一级精品视频在线观看宜春院| 欧美一区二区在线视频| 在线观看免费亚洲| 日韩av一二三| 日韩欧美国产麻豆| 日韩欧美电影一区| 宅男噜噜噜66一区二区66| 欧美丰满美乳xxx高潮www| 91精品国产综合久久久久久| 欧美一区二区在线观看| 日韩欧美激情在线| 久久久一区二区三区| 国产欧美精品一区二区三区四区 | 亚洲欧美色综合| 一区二区三区鲁丝不卡| 亚洲一区免费视频| 天堂av在线一区| 狠狠色丁香久久婷婷综合_中| 国内久久精品视频| 成人丝袜高跟foot| 在线视频一区二区三| 欧美一区中文字幕| 国产人成亚洲第一网站在线播放| 国产精品灌醉下药二区| 日韩视频一区二区| 久久色视频免费观看| 欧美极品xxx| 国产精品久久久久久久裸模| 国产精品第13页| 一区二区三区中文字幕| 日本视频在线一区| 视频一区二区三区入口| 韩国中文字幕2020精品| 粉嫩一区二区三区在线看| 国产丶欧美丶日本不卡视频| 久久99久久久欧美国产| 国产一区二区毛片| 成人a免费在线看| 欧美美女一区二区在线观看| ww亚洲ww在线观看国产| 亚洲色图制服诱惑| 五月婷婷欧美视频| 国产在线观看免费一区| 国产高清无密码一区二区三区| 成人av网站免费观看| 欧美片网站yy| 国产欧美日韩在线| 日韩精品电影在线观看| 国产91高潮流白浆在线麻豆| 在线国产亚洲欧美| 久久这里只有精品6| 有坂深雪av一区二区精品| 婷婷久久综合九色综合绿巨人 | 国内一区二区视频| 91在线精品一区二区| 欧美日本高清视频在线观看| 久久久久久亚洲综合| 亚洲一二三四久久| 韩国三级中文字幕hd久久精品| 91同城在线观看| 日韩一级视频免费观看在线| 亚洲第一搞黄网站| 日韩欧美一二区| 国产欧美日韩视频在线观看| 亚洲视频一二区| 一区视频在线播放| 欧美男生操女生| 粉嫩一区二区三区在线看| 国产精品99久久久久久有的能看| 欧美日韩一区中文字幕| 国产精品久久久久久久久免费相片| 日本免费新一区视频| 欧美主播一区二区三区美女| 国产精品视频yy9299一区| 捆绑变态av一区二区三区| 欧美午夜免费电影| 亚洲精品福利视频网站| 99久久久无码国产精品| 国产区在线观看成人精品 | 99免费精品在线| 久久久久国色av免费看影院| 蜜桃视频在线一区| 欧美亚洲一区二区在线| 一区二区三区在线免费观看| 99精品久久久久久| 国产精品私人影院| 国产精品中文有码| 精品国产污网站| 久久99国产精品久久| 日韩欧美区一区二| 看片的网站亚洲| 精品第一国产综合精品aⅴ| 欧美aa在线视频| 欧美一二三四区在线| 日本不卡的三区四区五区| 在线不卡欧美精品一区二区三区| 亚洲综合网站在线观看| 亚洲国产综合人成综合网站| 91视频一区二区| 亚洲免费电影在线| 一本久道中文字幕精品亚洲嫩| 国产精品视频九色porn| 99久久精品国产导航| 亚洲欧美一区二区三区孕妇| 日本电影亚洲天堂一区| 伊人开心综合网| 欧美色涩在线第一页| 亚洲1区2区3区4区| 欧美一区二区久久久| 麻豆精品在线播放| 久久夜色精品一区| 国产精品白丝av| 亚洲欧美中日韩| 欧美网站大全在线观看| 首页国产丝袜综合| 日韩美女一区二区三区| 国产成人综合网| 亚洲欧美日韩国产综合| 欧美三级视频在线观看| 久久国产精品99久久久久久老狼| 国产亚洲一区二区三区| 99精品久久只有精品| 亚洲成人免费看| 精品国产一区二区三区av性色| 大陆成人av片| 亚洲午夜激情网站| 精品久久久久久久久久久院品网| 国产精品亚洲人在线观看| 国产精品不卡在线观看| 欧美日韩三级一区| 国产精品自在欧美一区| 亚洲色欲色欲www| 日韩一级在线观看| proumb性欧美在线观看| 亚洲成a人v欧美综合天堂下载| 精品伦理精品一区| 99re在线精品| 久久99精品久久久久久国产越南 | 欧美极品xxx| 欧美日韩在线三级| 国内一区二区视频| 一二三四区精品视频| 精品国产成人系列| 在线视频国内一区二区| 国产乱码精品一区二区三区av | 国产精品成人在线观看| 9191成人精品久久| 成人av动漫在线| 免费av成人在线| 亚洲乱码国产乱码精品精98午夜| 日韩片之四级片| 欧美影院午夜播放| 国产不卡视频在线观看| 日韩精品免费视频人成| 亚洲日韩欧美一区二区在线| 精品日本一线二线三线不卡| 欧美亚洲动漫精品| 成人一区在线看| 国产在线精品一区在线观看麻豆| 亚洲综合男人的天堂| 日本一区二区免费在线观看视频|