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

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

?? worldcanvas.java

?? J2me橫版動作游戲源代碼
?? 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一区二区三区免费野_久草精品视频
久久九九久久九九| 亚洲色图一区二区三区| 精品国精品国产尤物美女| 欧美大尺度电影在线| 精品乱码亚洲一区二区不卡| 中文字幕欧美三区| 1000精品久久久久久久久| 18欧美亚洲精品| 国产综合色视频| 91猫先生在线| 日本一区二区视频在线| 午夜伦理一区二区| 99精品视频在线观看| 欧美电影影音先锋| 亚洲日本在线看| 国产精品456露脸| 日韩一区二区电影在线| 亚洲免费三区一区二区| 亚洲色图欧美在线| 亚洲免费av高清| 韩国一区二区在线观看| 色欲综合视频天天天| 亚洲精品在线三区| 亚洲成av人片在线| 91免费视频网| 中文字幕欧美一区| 国产在线视频一区二区三区| 97国产一区二区| 欧美精品一区二区高清在线观看| 成人欧美一区二区三区1314| 国内精品伊人久久久久av一坑| 91亚洲精品乱码久久久久久蜜桃 | 日韩午夜电影在线观看| 亚洲美女区一区| 97国产一区二区| 亚洲欧美电影一区二区| 成人高清免费观看| 国产精品久久久久久久久免费丝袜| 日韩不卡免费视频| 5858s免费视频成人| 天天综合色天天综合色h| 日本乱人伦aⅴ精品| 亚洲午夜久久久久久久久久久 | 亚洲少妇最新在线视频| 91视频.com| 天堂va蜜桃一区二区三区| 欧美美女bb生活片| 精品在线一区二区三区| 久久久久久久久久久久电影| 国产精品一二三四五| 亚洲美女淫视频| 欧美一级片免费看| 99re视频精品| 久久国产精品99久久人人澡| 1区2区3区欧美| 日韩一区二区不卡| 在线看国产日韩| 成人美女视频在线看| 亚洲成人精品一区二区| 久久久亚洲综合| 欧美蜜桃一区二区三区| 成人午夜短视频| 久久精品99国产精品日本| 曰韩精品一区二区| 国产人成亚洲第一网站在线播放| 欧美乱妇一区二区三区不卡视频| 国产一区二区三区久久久| 亚洲视频电影在线| 最新国产成人在线观看| 国产精品三级视频| 久久综合九色综合久久久精品综合| 欧美三级乱人伦电影| 色狠狠av一区二区三区| 99久久婷婷国产综合精品| 国产sm精品调教视频网站| 精品在线一区二区| 九九精品视频在线看| 麻豆高清免费国产一区| 青青草国产成人99久久| 免费成人在线影院| 国产在线播放一区三区四| 国产精品影音先锋| 国产成人精品综合在线观看| 国产伦精品一区二区三区免费 | 日韩一卡二卡三卡| 精品sm捆绑视频| 亚洲国产精品国自产拍av| 久久久影视传媒| 亚洲男同性视频| 天堂资源在线中文精品| 精久久久久久久久久久| 国产91精品久久久久久久网曝门| 不卡av电影在线播放| 在线观看一区日韩| 精品91自产拍在线观看一区| 中文字幕高清一区| 亚洲国产成人精品视频| 狠狠色丁香婷婷综合| 91麻豆国产福利在线观看| 9191久久久久久久久久久| 久久久久久影视| 日本v片在线高清不卡在线观看| 国产在线视频不卡二| 欧美揉bbbbb揉bbbbb| 久久这里只有精品6| 性欧美疯狂xxxxbbbb| hitomi一区二区三区精品| 欧美电影免费观看高清完整版| 亚洲欧美日韩精品久久久久| 激情深爱一区二区| 欧美一区二区三区四区五区| 日韩免费高清视频| 久久婷婷国产综合国色天香| 中文字幕中文字幕中文字幕亚洲无线| 午夜精品久久久久久久 | 久久久国产精品麻豆| 蜜臀国产一区二区三区在线播放| 色999日韩国产欧美一区二区| 中文字幕精品在线不卡| 国精产品一区一区三区mba视频 | 欧美三级在线播放| 亚洲制服欧美中文字幕中文字幕| 国产91精品入口| 国产精品久久影院| 波多野结衣视频一区| ...xxx性欧美| 欧美色倩网站大全免费| 亚洲一区二区三区在线看| 欧美浪妇xxxx高跟鞋交| 五月婷婷激情综合| 欧美白人最猛性xxxxx69交| 九九在线精品视频| 国产精品午夜春色av| 色噜噜偷拍精品综合在线| 图片区小说区国产精品视频| 欧美电影影音先锋| 丰满少妇在线播放bd日韩电影| 国产精品情趣视频| 欧美久久久久久蜜桃| 国产一区二区电影| 亚洲综合丁香婷婷六月香| 91在线一区二区| 美女网站在线免费欧美精品| 国产日韩欧美高清在线| 欧美性受xxxx| 国产成人免费在线视频| 一区二区在线观看不卡| 日韩欧美色电影| 色婷婷精品久久二区二区蜜臂av| 日韩国产成人精品| 亚洲视频狠狠干| 26uuu精品一区二区| 欧美日韩国产一二三| 99久久伊人久久99| 国产一区二区不卡在线| 午夜精品久久久久久久蜜桃app| 国产喂奶挤奶一区二区三区| 337p亚洲精品色噜噜| 在线看日本不卡| 在线欧美日韩精品| 91同城在线观看| av在线这里只有精品| 国产精品一区在线观看你懂的| 奇米色777欧美一区二区| 亚洲成人综合在线| 亚洲国产视频一区| 亚洲一区二三区| 五月天网站亚洲| 日韩高清国产一区在线| 蜜臀精品一区二区三区在线观看| 性做久久久久久| 精品综合久久久久久8888| 卡一卡二国产精品 | 一区二区三区欧美在线观看| 日韩毛片高清在线播放| 亚洲欧美日韩在线| 亚洲精品成人精品456| 一区二区三区在线免费播放| 亚洲一区二区三区四区的| 国产精品传媒入口麻豆| 风间由美中文字幕在线看视频国产欧美 | 久久久一区二区| 国产精品卡一卡二卡三| 亚洲美女在线国产| 日韩和欧美一区二区三区| 精品亚洲国内自在自线福利| 国产69精品久久久久毛片| 色中色一区二区| 精品成人佐山爱一区二区| 亚洲欧美日韩中文字幕一区二区三区| 国产欧美一区二区精品久导航| 亚洲欧美国产高清| 日韩和欧美一区二区| 成人精品国产免费网站| 欧美日韩免费在线视频| 久久精品亚洲精品国产欧美| 一区二区三区小说| 国产精品99久久久久久久vr| 欧美日韩国产天堂| 亚洲女女做受ⅹxx高潮|