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

📄 jcanvas.java

📁 RPG游戏
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		 			}
		 			if(duihuajixu==4){
		 				if(biaoy==63){
		 					zhuangtai.chushi();
		 					zhuangtai.goumai(biaoy,biaoyy,duihuakuang,duihuajixu);
		 					qiehuan=true;break; 					
		 				}					 				
		 				if(biaoy==88){zhuangtai.chushi();duihuajixu=3;qiehuan=true;break;}
		 			}
		 		}
		 		if(duihuakuang==10&&duihuajixu==1){qiehuan=true;break;}
				if(duihuakuang==10&&biaoy==63&&duihuajixu==0){zhuangtai.chushi();duihuajixu=1;qiehuan=true;break;}
				if(duihuakuang==10&&biaoy==88&&duihuajixu==0){zhuangtai.chushi();duihuajixu=2;qiehuan=true;break;}
				if(duihuakuang==20&&duihuajixu==0){duihuajixu=1;qiehuan=true;break;}
				if(duihuakuang==21&&duihuajixu==0){
					biaoxx=biaox;biaoyy=biaoy;
					duihuajixu=1;biaox=5*24+22;biaoy=4*24+22;
					qiehuan=true;break;
				}
				if(duihuakuang==21&&duihuajixu==1){
					if(biaoy>=118&&biaoy<=158){
						zhuangtai.wupin(biaox,biaoy,biaoxx,biaoyy);
						qiehuan=true;break;
					}				 				
					if(biaoy==178){duihuakuang=0;duihuajixu=0;qiehuan=true;break;}
				}
				if(duihuakuang == 24){
					if(biaoy == 36){
						jilu.Cunchu();
					}
					if(biaoy == 61){
						mapqiehuan = 12;
						if(map == chengwaimap){
							shenyin.over();
						}
						else{
							shenyin.over();
						}
					}
					if(biaoy == 86){
		 				logoy = 79;
		 				mapqiehuan = 0;
		 				shenyin.logo(2);
					}
				}
				break;
			}
		}
		return qiehuan;
	}
	//读取记录后的地图更换
	protected void MapImage(){
		if(mapImage == 1){
			map = huanggongmap;
		}
		if(mapImage == 2){
			map = huanggongmap1;
		}
		if(mapImage == 3){
			map = chengneimap;
		}
		if(mapImage == 4){
			map = chengwaimap;
		}
	}
	//主角与所有NPC对话的更换
	public void duihua(){
		if(duihuakuang>=2){duihuakuang=0;huan=0;move=0;shiweirow=1;shiwei1row=1;duihuajixu=0;zhuangtai.zhuangbeicol=1;
		zhuangtai.chushi();}
		else if(duihuakuang==0){duihuakuang=1;biaox=30;biaoy=14;}
		else if(duihuakuang==1){
			if(huan==0&&zhuangtai.xuanze(biaox,biaoy)==1){
				duihuakuang=100;
			}
			if(huan>=1&&huan<=12&&zhuangtai.xuanze(biaox,biaoy)==1){
				duihuakuang=huan+1;
				if(huan==1){shiweirow=NPCfangxiang(shiweirow);}
				if(huan==2||huan==6){shiwei1row=NPCfangxiang(shiwei1row);}
				if(huan==3||huan==7){NPCrow=NPCfangxiang(NPCrow);}
				if(huan==4||huan==8){NPCrow1=NPCfangxiang(NPCrow1);}
				if(huan==9){biaox=144+10;biaoy=48+15;}
				if(huan==10&&duihuajixu==0){biaox=144+10;biaoy=48+5;}
				if(huan==11&&duihuajixu==0){biaox=144+10;biaoy=48+5;}
				if(huan==12&&duihuajixu==0){biaox=144+10;biaoy=48+5;}
			}
			if(zhuangtai.xuanze(biaox,biaoy)==2){
				duihuakuang=20;	
				duihuajixu=0;
			}
			if(zhuangtai.xuanze(biaox,biaoy)==3){
				duihuakuang=21;
				biaox=5*24+27;
				biaoy=12+9;
			}
			if(zhuangtai.xuanze(biaox,biaoy)==4){
				if(map[(lian+reny+6+24)/24][(hang+renx)/24]==15){
					duihuakuang=23;
				}
				else{
					duihuakuang=22;
				}
			}
			if(zhuangtai.xuanze(biaox,biaoy)==5){
				biaox = 6*24 + 2;
				biaoy = 1*24 + 12;
				duihuakuang = 24;
				
			}
			if(zhuangtai.xuanze(biaox,biaoy)==6){
				duihuakuang=0;
			}
		}

	}
	//判断主角与NPC发生对话时NPC的图片更换
	public int  NPCfangxiang(int fangxiang){
			if(row==0){fangxiang=1;}
			if(row==1){fangxiang=0;}
			if(row==2){fangxiang=3;}
			if(row==3){fangxiang=2;}
			return fangxiang;
	}
	//所有商店对话的判断
	public void shangdianpanduan(Graphics g){
		if(huan==9){
			if(duihuajixu==0){
				zhuangtai.panduankuang(g,144,48,72,72,biaox,biaoy,1);
			}
			zhuangtai.lvdian(g,biaox,biaoy,duihuajixu);
		}
		if(huan>=10&&huan<=12){
			if(duihuajixu==0){
				zhuangtai.jinqian(g,144,12-6,72,48-6,biaox,biaoy);
				zhuangtai.panduankuang(g,144,48,72,72,biaox,biaoy,2);
			}
			if(duihuajixu==1){
				zhuangtai.shangdian(g,12,12,120+12,144,biaox,biaoy,huan-10);
			}
			if(duihuajixu==2){
				zhuangtai.daojulan(g,5*24+12,12,4*24+5,6*24,biaox,biaoy,1);
			}
		}
	}
	//光标上下移动时得情况
	public void  guangbiaopanduan(int move){
		switch(move){
			case 1:
				if(mapqiehuan == 7){
					if(biaoy > 50){
						biaoy -= 30;
					}
				}
				if(mapqiehuan==5){
					if(duihuajixu==1){
						if(biaoy>200){biaoy-=20;}
					}
				}
				if(duihuakuang==1){
		 			if(biaoy>14){biaoy-=25;}
		 		}
		 		if(duihuakuang==10){
		 			if(biaoy>63){biaoy-=25;}
		 		}
		 		if(duihuakuang>=11&&duihuakuang<=13){
		 			if(duihuajixu==4||duihuajixu==8){
		 				if(biaoy>63){biaoy-=25;}
		 			}
		 		}
		 		if(duihuakuang>=11&&duihuakuang<=13){
		 			if(duihuajixu==0){if(biaoy>53){biaoy-=20;}}
		 			if(duihuajixu==1){if(biaoy>22){biaoy-=20;}}
		 			if(duihuajixu==2){if(biaoy>22){biaoy-=15;}}
		 		}
		 		if(duihuakuang==20){
		 			if(biaoy>22){biaoy-=15;}
		 		}
		 		if(duihuakuang==21&&duihuajixu==0){
		 			if(biaoy>22){biaoy-=15;}
		 		}
		 		if(duihuakuang==21&&duihuajixu==1){
		 			if(biaoy>118){biaoy-=20;}
		 		}
		 		if(duihuakuang == 24 ){
		 			if(biaoy > 36){
		 				biaoy -= 25;
		 			}
		 		}
				break;
			case 2:
				if(mapqiehuan == 7){
					if(biaoy < 80){
						biaoy += 30;
					}
				}
				if(mapqiehuan==5){
					if(duihuajixu==1){
						if(biaoy<260){biaoy+=20;}
					}
				}
		 		if(duihuakuang==1){
		 			if(biaoy<64){biaoy+=25;}
		 			
		 		}
				if(duihuakuang==10){
		 			if(biaoy<88){biaoy+=25;}
		 		}
		 		if(duihuakuang>=11&&duihuakuang<=13){
		 			if(duihuajixu==4||duihuajixu==8){
		 				if(biaoy<88){biaoy+=25;}
		 			}
		 		}
		 		if(duihuajixu==0){
		 			if(duihuakuang>=11&&duihuakuang<=13){
		 				if(biaoy<93){biaoy+=20;}
		 			}
		 		}
		 		if(duihuajixu==1){
		 			if(duihuakuang==11){if(biaoy<22+3*20){biaoy+=20;}}
		 			if(duihuakuang==12){if(biaoy<22+2*20){biaoy+=20;}}
		 			if(duihuakuang==13){if(biaoy<22+5*20){biaoy+=20;}}
		 		}
		 		if(duihuakuang>=11&&duihuakuang<=13&&duihuajixu==2){
		 			if(biaoy<zhuangtai.daojushu*15){biaoy+=15;}
		 		}
		 		if(duihuakuang==20){
		 			if(biaoy<6+zhuangtai.daojushu*15){biaoy+=15;}
		 		}
		 		if(duihuakuang==21&&duihuajixu==0){
		 			if(biaoy<zhuangtai.daojushu*15){biaoy+=15;}
		 		}
		 		if(duihuakuang==21&&duihuajixu==1){
		 			if(biaoy<178){biaoy+=20;}
		 		}
		 		if(duihuakuang == 24 ){
		 			if(biaoy < 36 + 25*3){
		 				biaoy += 25;
		 			}
		 		}
				break;
			case 3:
				if(mapqiehuan == 7 && biaoy == 50){
					if(zhuangtai.setshengyin > 0){
						zhuangtai.setshengyin -= 1;
					}
				}
				if(duihuakuang==1){
		 			if(biaox>30){biaox-=48;}
		 		}
				break;
			case 4:
				if(mapqiehuan == 7 && biaoy == 50){
					if(zhuangtai.setshengyin < 3){
						zhuangtai.setshengyin += 1;
					}
				}
		 		if(duihuakuang==1){
		 			if(biaox<78){biaox+=48;}
		 		}
				break;				
		}
	}
	/**
	 * duizhanhuamian{} 方法主要的作用就是绘制游戏的对战画面;
	 * 变量 zhandouduihua 是表示战斗中的对话切换;
	 * 变量 duihuajixu 是代表在战斗中的各种状态,比如攻击、防御、逃跑;
	 */
	protected void duizhanhuamian(Graphics g){
		if(xianshidiren%5<=2&&Bxianshidiren){
			zhuangtai.duizhan_guai(g,sheguai,daoguai,shilaimu);	
		}
		if(duihuajixu==0){
			jishuqi++;
			if(jishuqi==20){duihuajixu=1;jishuqi=0;zhuangtai.chushi();}
		}
		if(duihuajixu==0){
			zhuangtai.shiwei(g,23,duihuajixu);
		}
		if(duihuajixu==1||duihuajixu==2){
				zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
				zhuangtai.duizhan_kongzhilan(g,12,8*24,3*24,4*24,biaox,biaoy);
				zhuangtai.duizhan_mingchenglan(g,12+3*24,8*24,5*24,36,biaox,biaoy);
		}
		//主角攻击怪物后的情况
		if(duihuajixu==3){
			zhuangtai.shiwei(g,zhandouduihua,zhandoujixu);
			zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
			if(jishuqi==15){
				zhandoujixu=1;
				yanshipanduan=true;
				zhuangtai.jisuanshuzhi_guaiwu();
				jishuqi++;
				zhuangtai.chushi();
			}
			if(jishuqi<15){
				jishuqi++;
			}
			if(yanshipanduan){
				zhandouduihua=24;
				xianshidiren++;
				if(xianshidiren>=25){
					if(zhandoujixu==2||zhandoujixu==3){
						duihuajixu=10;
						zhandouduihua=26;
						Bxianshidiren=false;
					}
					else{
						duihuajixu=4;
						zhandouduihua=100;
						zhandoujixu=0;
					}
					zhuangtai.chushi();
					jishuqi=0;
					xianshidiren=0;
					yanshipanduan=false;
				}
			}
		}
		/**
		 * 怪物攻击主角后的情况
		 */
		if(duihuajixu==4){
			zhuangtai.shiwei(g,zhandouduihua,zhandoujixu);
			if(xianshizhujue%5<=2){
				zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
			}
			if(jishuqi==15){
				zhuangtai.chushi();
				zhandoujixu=1;
				jishuqi++;
				zhuangtai.jisuanshuzhi_zhujue();
				yanshipanduan=true;
			}
			if(jishuqi<15){
				jishuqi++;
			}
			if(yanshipanduan){
				zhandouduihua=25;
				xianshizhujue++;
				if(xianshizhujue>=30){
					zhuangtai.chushi();
					zhuangtai.fangyu(duihuajixu);
					jishuqi=0;
					biaox=12+10;
					biaoy=8*24+8;
					duihuajixu=1;
					xianshizhujue=0;
					zhandoujixu=0;
					zhandouduihua=100;
					yanshipanduan=false;
					/**
					 * 
					 * 主角HP低于0,主角死亡
					 * 战斗对话变成31
					 */
					if(NPC.hp <= 0){
						duihuajixu = 10;
						zhandoujixu = 3;
						zhandouduihua = 31;
						zhuangtai.over = 1;
						yanshipanduan=false;
					}
				}
			}
		}
		/**
		 * 主角选择使用咒文后出现的情况
		 */
		if(duihuajixu==5){
			zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
			zhuangtai.shiwei(g,29,duihuajixu);
			jishuqi++;
			if(jishuqi>=15){
				zhuangtai.chushi();
				duihuajixu=1;
				jishuqi=0;
			}
		}
		/**
		 * 主角选择防御后出现的情况
		 */
		if(duihuajixu==6){
			zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
			zhuangtai.shiwei(g,30,duihuajixu);
			jishuqi++;
			if(jishuqi>=20){
				zhuangtai.chushi();
				zhuangtai.fangyu(duihuajixu);
				duihuajixu=4;
				jishuqi=0;
			}
			
		}
		/**如果主角选择逃跑
		 * 或者战斗结束
		 * zhandouduihua如果等于26代表主角升级,27为切换升级对话。
		 * 
		 */
		
		if(duihuajixu==10){
			zhuangtai.duizhan_shuxinglan(g,12,12,3*24,3*24);
			zhuangtai.shiwei(g,zhandouduihua,duihuajixu);
			jishuqi++;
			if(zhandoujixu==3){
				if(jishuqi >= 35){
					/**
					 * 主角消灭怪物了,但同时升级
					 */
					if(zhandouduihua==26){
						jishuqi = 0;
						zhandouduihua=27;
						zhuangtai.chushi();
					}
				}
			}
			else{
				if(zhandouduihua == 26){
					/**
					 * 主角消灭怪物但并没有升级
					 */
					if(jishuqi >= 35){
						jishuqi=0;
						mapqiehuan=4;
						yudile=2;	
						zhandouduihua=100;
						zhuangtai.chushi();
						shenyin.logo(2);
					}
				}
				else{
					/**
					 * 主角选择逃跑
					 */
					if(jishuqi >= 20){
						jishuqi=0;
						mapqiehuan=4;
						yudile=2;	
						zhandouduihua=100;
						zhuangtai.chushi();
						shenyin.logo(2);
					}
				}
			}
		}
	}
	protected void over(){
		row = 0;
		move = 0;
		yudile = 0;
		hang=14*24;							
		lian=14*24-6;
		pengx=24*24;							
		pengy=20*24-6;						
		penghuan=0;							
		pengnvx=12*24;						
		pengnvy=13*24-6;
		jishuqi = 0;
		duihuakuang = 0;
		duihuajixu = 0;
		zhandoujixu = 0;
		zhandouduihua = 100;
	}
	/**
	 * 游戏变量全部附初值
	 */
	protected void chushi(){
		row = 0;
		move = 0;
		yudile = 0;
		hang=5*24;							
		lian=7*24-6;
		qingnianx=23*24;
		qingniany=19*24-6;	
		funvx=12*24;
		funvy=13*24-6;
		pengx=24*24;							
		pengy=20*24-6;						
		penghuan=0;							
		pengnvx=12*24;						
		pengnvy=13*24-6;
		jishuqi = 0;
		duihuakuang = 0;
		duihuajixu = 0;
		zhandoujixu = 0;
		zhandouduihua = 100;
		map = huanggongmap1;
		NPC.dengji=1;							
		NPC.jingyan=0;					
		NPC.maxhp=80;
		NPC.maxmp=50;				
		NPC.hp=80;
		NPC.mp=50;						
		NPC.liliang=8;						
		NPC.fangyu=5;							
		NPC.wuqi=20;							
		NPC.yifu=0;							
		NPC.dun=0;							
		NPC.xiezi=0;							
		NPC.zhili=5;							
		NPC.minjie=1;						
		NPC.gongjili=NPC.liliang+NPC.wuqi;			
		NPC.fangyuli=NPC.fangyu+NPC.yifu+NPC.dun+NPC.xiezi;
		NPC.jinqian=500;
		for(int i = 0; i < 8; i ++){
			NPC.daojulan[i] = NPC.daojulan1[i];
			if(i < 4){
				NPC.zhuangbeilan[i] = NPC.zhuangbeilan1[i];
			}
		}

	}

}

⌨️ 快捷键说明

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