⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xianjiancanvas.java

📁 < 仙剑奇侠传>>的J2ME手机游戏源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				enemy3.setPosition(-44,84);
				enemy.addElement(enemy1);
				enemy.addElement(enemy2);
				enemy.addElement(enemy3);
				break;
			case -154:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);						
				player.setPosition(-68,184);
				xtmp=152;
				ytmp=-100;
				NpcRole npc2=new NpcRole("商人",13);
				npc2.changeDir(2);
				npc2.setPosition(60,160);
				npc.addElement(npc2);
				break;
				
			case -126:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);						
				player.setPosition(-20,82);
				xtmp=98;
				ytmp=7;
				if(eventID==8)
				{
					NpcRole npc1=new NpcRole("苗人",812);
					npc1.changeDir(2);
					npc1.setPosition(50,45);
					npc.addElement(npc1);
				}
				break;
			case -162:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
				player.setPosition(124,72);
				xtmp=-46;
				ytmp=9;
				break;	
			case -127:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);						
				player.setPosition(-20,82);
				xtmp=98;
				ytmp=7;
				break;
			case -172:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);
				player.setPosition(76,48);
				xtmp=8;
				ytmp=36;
				break;	
			case -138:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);						
				player.setPosition(-8,130);
				xtmp=92;
				ytmp=-44;
				if(eventID==7)
				{
					NpcRole npc1=new NpcRole("李大娘",711);
					npc1.changeDir(3);
					npc1.setPosition(12,38);
					npc.addElement(npc1);
				}
				break;
			case -183:
				board.createMap((-board.map.walk[cell[1]][cell[0]])%10);						
				player.setPosition(-42,75);
				xtmp=122;
				ytmp=5;
				break;	
			default:
				break;
			}					
		}
	}
	
	/**
	 * 滚屏
	 */
	public void moveMap(){
		if(player.x+xtmp<75){
			xtmp+=2*player.speed;
		}
		if(player.x+xtmp>85){
			xtmp-=2*player.speed;
		}
		if(player.y+ytmp<80){
			ytmp+=player.speed;
		}
		if(player.y+ytmp>90){
			ytmp-=player.speed;
		}
	}
	

	/**
	 * 事件处理
	 */
	public void event(){
		//System.out.println(eventid);
		
		int [] cell = board.getCell(player.x,player.y);
		if(eventID == 1){
			keystate = 0;
			bMess=true;				
		}
		if(eventID == 2){
			
			for(int i=0;i<npc.size();i++){	
				if (npc.elementAt(i) instanceof NpcRole) {							
					if(((NpcRole)(npc.elementAt(i))).getID()%1000/100==eventID)
					{					
						((NpcRole)(npc.elementAt(i))).changeDir(2);
						((NpcRole)(npc.elementAt(i))).move();
						bEvent=true;
						if(((NpcRole)(npc.elementAt(i))).y>80)
						{							
							bMess=true;
							npc.removeElementAt(i);	
							bEvent=false;
						}
					}					
				}
			}			
		}
		if(eventID == 3){
			
			if(board.map.walk[cell[1]][cell[0]]==eventID){				
				npc.removeAllElements();				
				NpcRole npc1=new NpcRole("李大娘",411);
				npc1.changeDir(2);
				npc1.setPosition(34,130);
				NpcRole npc2=new NpcRole("苗人",512);
				npc2.changeDir(0);
				npc2.setPosition(14,140);
				NpcRole npc3=new NpcRole("苗人",522);
				npc3.changeDir(0);
				npc3.setPosition(-12,147);
				NpcRole npc4=new NpcRole("苗人",532);
				npc4.changeDir(0);
				npc4.setPosition(14,160);
				npc.addElement(npc1);
				npc.addElement(npc2);
				npc.addElement(npc3);
				npc.addElement(npc4);				
				bEvent=true;
				player.changeDir(1);
				for(int i=0;i<7;i++){
					player.move();
					moveMap();
					show();
				}
				player.changeDir(2);
				for(int i=0;i<8;i++){
					player.move();
					moveMap();
					show();
				}
				((NpcRole)(npc.elementAt(0))).changeDir(0);
				bEvent=false;
				bMess=true;	
			}
		}
		if(eventID == 4){			
			for(int i=0;i<npc.size();i++){	
				if (npc.elementAt(i) instanceof NpcRole) {							
					if(((NpcRole)(npc.elementAt(i))).getID()%1000/100==eventID)
					{						
						bMess=false;
						bEvent=true;						
						((NpcRole)(npc.elementAt(i))).changeDir(3);
						((NpcRole)(npc.elementAt(i))).move();
						if(((NpcRole)(npc.elementAt(i))).x<-20)
						{
							bEvent=false;
							bMess=true;
							npc.removeElementAt(i);	
						}
					}					
				}
			}			
		}
		if(eventID == 5){
			bEvent=true;
			gameshow=false;
			show();	
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {					
				e.printStackTrace();
			}
			npc.removeAllElements();
			gameshow=true;
			bEvent=false;
			eventID++;
		}
		if(eventID == 6){
			bMess=true;				
		}
		if(eventID == 7){
			if(board.map.walk[cell[1]][cell[0]]==eventID){
				keystate = 0;
				bMess=true;				
			}
		}
		if(eventID == 8){
			if(board.map.walk[cell[1]][cell[0]]==eventID){
				keystate = 0;
				player.changeDir(0);
				for(int i=0;i<6;i++){
					player.move();
					moveMap();
					show();
				}
				bMess=true;	
			}
		}		
	}
	
	
	class  KeyTh  extends Thread{
		public void run() {
			while(true){				
				if(enemy!=null){
					enemymove++;
					enemymove = enemymove%3;					
					for(int i=0;i<enemy.size();i++){
						if (enemy.elementAt(i) instanceof Animal) {	
							Animal enemytmp = (Animal) enemy.elementAt(i);
							if(Math.abs(player.x-enemytmp.x)<=14&&Math.abs(player.y-10-enemytmp.y)<=18){							
								keystate = 0;
								enemy.removeElementAt(i);
								bAttle = true;
								batt.init();
								show();
								//batt.start();
								
							}							
						}							
					}
				}	
				
				if(!bAttle){
					movePlayer();
					moveMap();					
					event();				
					changeMap();
					show();
				}else if(bAttle){
					batt.start();					
				}
				
				System.out.println(bAttle+","+start);	
				//System.out.println(board.map.walk[cell[1]][cell[0]]);	
				//System.out.println(player.x+","+player.y+","+xtmp+","+ytmp);				
				
			}
			
		}
	}
	
	
	public void show(){
		repaint();
		serviceRepaints();
		try {
			Thread.sleep(80);
		} catch (InterruptedException e) {					
			e.printStackTrace();
		}
	}
	
	/**
	 * 菜单
	 */
	class Menu
	{
		private final String selection[]  = {"状  态","法  术","物  品","宠  物","任  务","系  统"};
		private final String selectionsy[]= {"存取进度","读取进度","离开游戏"};
		private final String selectionUseItem[] = {"使用/装备","取消"};
		private final String selectionShop[] = {"购      买","出      售"};
		private final int 	selectionBuyGoods[] = {1002,1005,2204};
		
		
		private final int 	MAIN 	 = 0,
							STATE	 = 1,
							MAGIC	 = 2,
							ITEMS	 = 3,
							SYSTEM	 = 4,
							USEGOODS = 5,
							TASK 	 = 6,
							PET 	 = 7,
							SAVE	 = 8,
							LOAD	 = 9,
							EXIT	 = 10,
							SHOP	 = 11,
							BUYGOODS = 12,
							SALEGOODS= 13;
							
		private int select,
					selectit,
					selectsy,
					selectuse,
					selectWeaCl,
					selectShop,
					selectSaleGoods,
					selectBuyGoods,
					selectPet;
		public 	int onMenu;		
		
		Menu()
		{
			onMenu		   = -1;
			select		   = 0;			
			selectit	   = 0;
			selectsy	   = 0;
			selectuse	   = 0;
			selectWeaCl	   = 0;
			selectShop 	   = 0;
			selectBuyGoods = 0;
			selectSaleGoods= 0;
			selectPet	   = 0;
		}
		
		/**
		 * 绘制菜单
		 * @param g
		 */
		public void drawMenu(Graphics g)
		{
			switch(onMenu){
			case MAIN:
				g.drawImage(XianJianImage.imgMenu,0,0,Graphics.LEFT|Graphics.TOP);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				for(int i=0;i<selection.length;i++)
				{					
					g.setColor(0xffffff);					
					g.drawString(selection[i],30,i*15+5,Graphics.LEFT|Graphics.TOP);
				}
				g.setColor(0xffff00);				
				g.drawString(selection[select],30,select*15+5,Graphics.LEFT|Graphics.TOP);
				g.setColor(0x000000);
				g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
				g.setColor(0xffffff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				g.drawString("选择",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
				g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
				break;
			case STATE:				
				g.setColor(0x2d2d40);
				g.fillRect(0,0,200,200);
				g.setColor(0xFFFFFF);
				g.drawImage(XianJianImage.kuang,0,0,Graphics.LEFT|Graphics.TOP);
				g.drawImage(XianJianImage.rolestate,(canvasWidth-XianJianImage.rolestate.getWidth())/2,0,Graphics.LEFT|Graphics.TOP);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				g.drawString(""+player.getName(),5,15,Graphics.LEFT|Graphics.TOP);	
				g.drawImage(XianJianImage.imgPlayerd[0],20,40,Graphics.LEFT|Graphics.TOP);
				g.drawString("经验 "+player.Exp+"/"+player.MaxExp,70,15,Graphics.LEFT|Graphics.TOP);
				g.drawString("体力 "+player.HP+"/"+player.MaxHP,70,30,Graphics.LEFT|Graphics.TOP);
				g.drawString("真气 "+player.MP+"/"+player.MaxMP,70,45,Graphics.LEFT|Graphics.TOP);
				g.drawString("武力 "+player.wu,5,65,0);
				g.drawString("灵力 "+player.ling,5,80,0);
				g.drawString("身法 "+player.shen,5,95,0);
				g.drawString("体质 "+player.ti,5,110,0);	
				g.drawString("吉运 "+player.ji,5,125,0);	
				g.drawString("等级 "+player.Level,5,140,Graphics.LEFT|Graphics.TOP);
	
				g.setColor(0xb5b5d2);
				g.fillRect(100,65,78,18*4);
				g.setColor(0x706db0);
				g.fillRect(100,65+selectWeaCl*18,78,18);
				
				g.setColor(0xFFFFFF);
				g.drawString("头戴 ",70,65,0);
				g.drawString("衣服 ",70,65+18,0);
				g.drawString("武器 ",70,65+18*2,0);
				g.drawString("鞋子 ",70,65+18*3,0);
				g.setColor(0);
				for(int i=0;i<player.weaClList.length;i++){
					if(player.weaClList[i]!=null){
						g.drawString(player.weaClList[i].getName(),105,65+i*18,0);
					}
					if(player.weaClList[i]==null){
						g.drawString("空",105,65+i*18,0);
					}
				}				
				g.setColor(0xFFFFFF);
				g.drawString("金钱 "+player.money,80,140,Graphics.LEFT|Graphics.TOP);
				g.setColor(0x000000);
				g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
				g.setColor(0xffffff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				g.drawString("取下",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
				g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
				break;
			case MAGIC:
				g.setColor(0x2d2d40);
				g.fillRoundRect(0,40,179,100,8,8);			
				g.setColor(0x1e2d64);
				g.drawRoundRect(0,40,179,100,8,8);
				g.drawImage(XianJianImage.kuang,0,40,Graphics.LEFT|Graphics.TOP);
				g.drawImage(XianJianImage.roleskill,(canvasWidth-XianJianImage.roleskill.getWidth())/2,40,Graphics.LEFT|Graphics.TOP);
				
				g.setColor(0xFFFFFF);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				if(player.magicList!=null){
					for(int i=0;i<player.magicList.length;i++){
						g.drawString(player.magicList[i],15,65+i*15,Graphics.LEFT|Graphics.TOP);
					}
				}
				else{
					g.drawString("李逍遥未学任何法术",15,65,Graphics.LEFT|Graphics.TOP);
				}
				
				g.setColor(0x000000);
				g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
				g.setColor(0xffffff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
				break;
			case ITEMS:
				g.setColor(0x2d2d40);
				g.fillRoundRect(0,0,179,176,8,8);							
				g.setColor(0x1e2d64);
				g.drawRoundRect(0,0,179,176,8,8);
				g.setColor(0xffffff);
				g.drawLine(0,105,179,105);
				g.drawImage(XianJianImage.kuang,0,0,Graphics.LEFT|Graphics.TOP);
				g.drawImage(XianJianImage.bag,(canvasWidth-XianJianImage.bag.getWidth())/2,0,Graphics.LEFT|Graphics.TOP);
								
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
								
				if(player.goodsList.size()>0){
					g.setColor(0xffffff);
					if(player.goodsList.size()>3&&selectit<player.goodsList.size()-1){						
						g.fillTriangle(160,80,170,80,165,90);
					}
					if(selectit>3){						
						g.fillTriangle(160,30,170,30,165,20);
					}					
					if(selectit<=3){
						for(int i=0;i<player.goodsList.size()&&i<=3;i++){							
							g.drawString(((ItemManager) player.goodsList.elementAt(i)).getItem().getName(),30,i*20+15,Graphics.LEFT|Graphics.TOP);
							if(((ItemManager) player.goodsList.elementAt(i)).getItem().img!=null)
								g.drawImage(((ItemManager) player.goodsList.elementAt(i)).getItem().img,10,i*20+17,Graphics.LEFT|Graphics.TOP);
							
							g.drawString(""+((ItemManager) player.goodsList.elementAt(i)).getItemNum(),130,i*20+15,Graphics.LEFT|Graphics.TOP);							
						}
					}
					if(selectit>3){
						for(int i=selectit-3;i<player.goodsList.size()&&i<=selectit;i++){							
							g.drawString(((ItemManager) player.goodsList.elementAt(i)).getItem().getName(),30,i*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
							if(((ItemManager) player.goodsList.elementAt(i)).getItem().img!=null)
								g.drawImage(((ItemManager) player.goodsList.elementAt(i)).getItem().img,10,i*20+17-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
							g.drawString(""+((ItemManager) player.goodsList.elementAt(i)).getItemNum(),130,i*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);							
						}
					}
					g.setColor(0xff0000);
					if(selectit<=3){						
							
							g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().getName(),30,selectit*20+15,Graphics.LEFT|Graphics.TOP);							
							g.drawString(""+((ItemManager) player.goodsList.elementAt(selectit)).getItemNum(),130,selectit*20+15,Graphics.LEFT|Graphics.TOP);							
						
					}
					if(selectit>3){
							g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().getName(),30,selectit*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);
							g.drawString(""+((ItemManager) player.goodsList.elementAt(selectit)).getItemNum(),130,selectit*20+15-(selectit-3)*20,Graphics.LEFT|Graphics.TOP);							
						
					}	
					if(selectit>player.goodsList.size()-1){
						selectit=0;
					}
					g.setColor(0xffffff);
					for(int i = 0;i<((ItemManager) player.goodsList.elementAt(selectit)).getItem().description.length;i++){
						g.drawString(((ItemManager) player.goodsList.elementAt(selectit)).getItem().description[i],5,110+15*i,Graphics.LEFT|Graphics.TOP);
					}					
				}				
				else{
					g.drawString("没有物品",5,20,Graphics.LEFT|Graphics.TOP);
				}
				g.setColor(0x000000);
				g.fillRect(0, canvasHeight-20, canvasWidth, canvasHeight);
				g.setColor(0xffffff);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_LARGE));
				g.drawString("选择",0,canvasHeight,Graphics.LEFT|Graphics.BOTTOM);
				g.drawString("返回",canvasWidth,canvasHeight,Graphics.RIGHT|Graphics.BOTTOM);
				break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -