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

📄 npc.cpp

📁 这是我用VC写的一个RPG的文字游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include"NPC.h"
#include<iostream>
#include"head.h"
#include"CRole.h"
#include"Color.h"
extern color c;//调用已经声明的对象
extern mygame call;//调用已经声明的对象
extern CRole k;//调用已经声明的对象
using namespace std;



NPC::NPC()
{
	d=0;
}
NPC::~NPC()
{
}
void NPC::message()//安全行走提示
{
  c.anqingse();
  cout<<"【"<<"消息】:"<<"现在很安全,没有发现任何动静!";
  cout<<"按";
  c.huangse();
  cout<<" w a d";
  c.anqingse();
  cout<<"键继续行走";
}

void NPC::message2()//玩家昵称 ,【玩家】青色
{
         c.qingse();
	     cout<<"【";
		 cout<<k.player;
		 cout<<"】:"<<endl;
		  
}
void NPC::message3()//信息提示,【消息】红色
{
	 c.Hongse();
    cout<<"【";
	c.huangse();
     cout<<"消息";
	 c.Hongse();
	 cout<<"】:";
}

void NPC::npc1_penglai()//前往蓬莱的怪物分布
{
	 message3();
	 c.anbaise();
	 cout<<"前方发现 ";
	 c.Hongse();
	 cout<<"『巨鼠』";
	 c.anbaise();
	 cout<<" 正虎视耽耽的看着你,位置:";
	 cout<<" X:50  Y:40  数量:1  等级:1"<<"\n";
	 cout<<"选择攻击方式:"<<"\n";
C:	 c.huangse();
	 cout<<"1.取出『强化乌龙剑』近距离刺杀 2.利用『暗夜连环斩』直线冲杀(会消耗2点的力量)";
	 cout<<"\n";
	 cin>>in;
	 
	 switch(in[0])
	 {
	 case '1':
		message2();
		 c.anqingse();
         call.image("  暗笑,区区一只巨鼠竟敢挡我去路!,真是找死!",45);
		 cout<<"\n";
         message2();
		 call.image("  提剑冲向『巨鼠』,刹那间,眼看",32);
		 c.Hongse();
		 cout<<"『强化乌龙剑』";
         c.anqingse();
		 cout<<"就要索取『巨鼠』之性命,但『巨鼠』  动作敏捷,并能看清黑夜中的一切,轻松躲过";
		 c.qingse();cout<<"【";cout<<k.player;cout<<"】";c.anqingse();
		 cout<<"的攻击,并称机反咬一口~~!\n"; 
         message3();//受到攻击消息报告
		   
		  c.Hongse();
	   	  cout<<"  你的血值丢失3\n";
         k.setHP(k.getHP()-3);
         k.shuxing();//输出属性回执单
		 message2();
		 c.anbaise();
		 cout<<"  此处非平常之地,连老鼠都那么狡猾!"<<endl;
         message3();
		 c.huangse();
		 cout<<"  在漆黑的洞内建议使用";
		 c.Hongse();
		 cout<<"『暗夜连环斩』"<<"\n";
		 c.anqingse();
		 cout<<"  选择再次攻击方式:"<<"\n";
	goto C;
         
		 break;
	 case '2':
          message2();
		 c.anlvse();
		 call.image("  开始运起内力,身边紫光环绕,瞬间一条光剑射向『巨鼠』,『巨鼠』当场毙命~!",72);
		 cout<<"\n";
		 message3();
		 c.anqingse();
         cout<<"  由于你的内力消耗,暂时损失了2点的力量,经验值增加1,级别升高1;"<<endl;
		 k.setEP(k.getEP()+1);//经验加1
		 k.setBI(k.getBI()-2);//力量减2
		 k.setLEVL(k.getLEVL()+1);//等级加1
         k.shuxing();//输出属性回执单
        
		    
            cout<<"\n";
            message3();
			cout<<"\n";
			c.anqingse();
		    cout<<"  巨鼠掉落一瓶生命药水,是否捡起放入物品栏?(y/n)"<<endl;
			cin>>in;
			switch(in[0])
			{
			case 'y':
				 message3();
				cout<<"  生命药水已经放入物品栏!"<<endl;
				call.wupin2=" 生命药水   ";
				call.wupin();

				break;
			case 'n':
				break;
			default:
				break;
			}
		cout<<"\n";
		 message();//安全信息
      break;

	  default:
		 c.Hongse();
		 cout<<"  输入错误!"<<"\n";
       goto C;
	 }
     cout<<"\n";
	 c.anbaise();
	 cout<<"  洞内甚是黑暗";
	 c.qingse();
	 cout<<k.player;
	 c.anbaise();
	 cout<<"只能放慢脚步,摸索前进..."<<endl;
	 
}


void NPC::flower_penglai()//强酸花
{
	        if(k.gety()==34)
              {
					  message3();
					  c.anhuangse();
					  cout<<"前方发现";
					  c.qingse();
					  cout<<"『强酸花』";
					  c.anhuangse();
					  cout<<"能化解";
					  c.Hongse();
					  cout<<"「吸血虫」";
					  c.anhuangse();
					  cout<<"和";
					  c.Hongse();
					  cout<<"「毒蝎」";
					  c.anhuangse();
					  cout<<"的毒素!";
					  c.anhuangse();
					  cout<<"坐标:";
					  c.Hongse();
					  cout<<"X:55  Y:30 "<<endl;
				 /*
						  cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
						  cout<<"\n";*/
				}

			if(d==0){

                   if(k.getx()==50&&k.gety()==34)
					   {
						  cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
                          }
				   if(k.getx()==50&&k.gety()==32)
						  {
                              message3();
							  cout<<"按 w 键 再向前走几步!"<<endl;
						  }
				   if(k.getx()==50&&k.gety()==30)
						  {
                              message3();
							  cout<<"按 d 键 再向右走几步!"<<endl;
							    cout<<"\n";
						  }
 
			   if(k.getx()==55&&k.gety()==34)
						  {
                           message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
                          }
				if(k.getx()==55&&k.gety()==32)
						  {
                          message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"再向前走几步。 ";
						    cout<<"\n";
						  }
				     
                if(k.getx()==60&&k.gety()==34)
						 {
                           message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
                            }
				if(k.getx()==60&&k.gety()==32)
						  {
							  message3();
							  cout<<"按 w 键 再向前走几步!"<<endl;
							    cout<<"\n";
						  }

                


				 if(k.getx()==45&&k.gety()==34)
				    {
                          message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
						  cout<<"\n";
				    }

				if(k.getx()==45&&k.gety()==32)
						  {
							  message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(再向前走几步。 ";
						    cout<<"\n";

						  }
				if(k.getx()==45&&k.gety()==30)
						  {
                           message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" d ";
						  c.anhuangse();
						  cout<<"向右走几步。 ";
						    cout<<"\n";
						  }
			   if(k.getx()==40&&k.gety()==34)
				 {
					      message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
						  cout<<"\n";
				 }
				 if(k.getx()==40&&k.gety()==32)
				 {
					     message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" w ";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向前走几步。 ";
						  cout<<"\n";
				 }
				 if(k.getx()==40&&k.gety()==30)
				 {
					     message3();
                          cout<<"  按";
						  c.anlvse();
						  cout<<" d";
						  c.anhuangse();
						  cout<<"(控制Y坐标) 向右走几步。 ";
						  cout<<"\n";
				       }
				if(k.gety()==30&&k.getx()<55)
					  {
						    message3();
							c.qingse();
							cout<<" 『强酸花』";
							c.lvse();
							cout<<"在你的右方向--> X:55  Y:30";
							cout<<" 按 d 键靠近..."<<endl;
							 
					  }
                      int panduan=0;
					 if(k.getx()==55&&k.gety()==30)
					  {
						  if(panduan==0)
						  {
                         message3();
						 c.qingse();
						 cout<<" 『强酸花』";
						 c.Hongse();
						 cout<<"已经采集到~!"<<endl;
						 c.anlvse();
						 cout<<"  是否放入物品栏?";
						 c.huangse();
						 cout<<"(y / n) ";
						 c.anlvse();
						 cout<<" 按其他键则默认丢弃~!"<<endl;
						  panduan=1;
						  }
						 cin>>k.W;
						 if(k.W[0]=='y')
						 {
							 message3();
							 c.qingse();
							 cout<<" 『强酸花』";
							 c.lvse();
							 cout<<"已经放入物品栏!按w a d 继续行走";
							 cout<<"\n";
							 call.wupin4="   强酸花     ";
							 call.zhuangtai=1;
							 call.wupin();
						 }else
							 {  message3();
								 c.anqingse();
								 cout<<"『强酸花』已经仍掉~!"<<endl;
								 d=1;
							 }
						/* c.anbaise();
						 cout<<"游戏继续....";*/



                        if(k.getx()==60&&k.gety()==30)/////////////////////////
						 {
                           if(panduan=0)
						   {
                           message3();
						   cout<<"按 a 向左走几步!"<<endl;
						     cout<<"\n";
						       }
						 }
						





					  }
					
}
}

void NPC::last()//////寻找田不易
{
	          if(k.getx()<60&&k.gety()>=20)
			  {
                 message3();
				 c.anhuangse();
				  cout<<"方向走反了,应该按 d 键向东走。这个方向根本找不到 田不易!";
			  }
				 
               if(k.getx()==60&&k.gety()==24)
			   {
                 message3();
				 cout<<"按 w 向前走一段距离或按 d 向右拐。"<<endl;
			   }
			   if(k.getx()==60&&k.gety()==22)
			   {
                 message3();
				 cout<<" 按 w 向前走一段距离或按 d 向右拐。"<<endl;
			   }
			   if(k.getx()==60&&k.gety()==20)
			   {
                 message3();
				 cout<<" 按 d 向右拐。"<<endl;
			   }


			   if(k.getx()==65&&k.gety()==24)
			   {
                 message3();
				 cout<<" 按 w 向前走一段距离或按 d 向右拐。"<<endl;
			   }
			    if(k.getx()==65&&k.gety()==22)
			   {
                 message3();
				 cout<<" 按 w 向前走一段距离或按 d 向右拐。"<<endl;
			   }
				 if(k.getx()==65&&k.gety()==20)
			   {
                 message3();
				 cout<<" 按 d 向右拐。"<<endl;
			   }
			  if(k.getx()==70&&k.gety()==24)
			   {
                message3();
				 cout<<" 按 w 向前走一段距离"<<endl;
			   }
			  if(k.getx()==70&&k.gety()==22)
			   {
                 message3();
				 cout<<" 按 w 向前走一段距离"<<endl;
			   }
			  if(k.getx()>70&&k.gety()>20)
			   {
                message3();
				 cout<<" 你已经走过了,再按 a 向左走。。 "<<endl;
			   }
			  if(k.getx()==75&&k.gety()==22)
			   {
                 message3();
				 cout<<" 按 w 向前走一段距离"<<endl;
			   }
			  if(k.getx()==75&&k.gety()==20)
			   {
                 message3();
				 cout<<" 按 a 向左拐"<<endl;
			   }
			  if(k.gety()<20)
			  {
                 message3();
				 cout<<" 按 s 向南走"<<endl;
			  }
		  if(k.getx()==70&&k.gety()==20)
		  {
			  cout<<"  你终于来到了田不易的门外!"<<endl;
              message3();
			  c.baise();
			  cout<<"   待续 . . ."<<endl;
			  exit(0);
		  }

}








void NPC::npc2_penglai()//..................吸血虫和毒蝎
{
    if(k.gety()<45&&k.gety()>26)
				{
					
					
					c.Hongse();
					int s=k.gety()%10;
					if(s!=0){
                      message3();
					cout<<"  "<<s;
					c.anhuangse();
					cout<<"只";
					c.Hongse();
					cout<<"『吸血虫』";
					c.anhuangse();
					cout<<"趁你不注意,爬到你的脖子上!,并疯狂的吸取你血液!"<<endl;
					cout<<"  按";
                    c.Hongse();
					cout<<"X";
                    c.anhuangse();
					cout<<"键甩掉身上的";
					cout<<"『吸血虫』";
					cin>>k.W;
					    switch(k.W[0])
						{
						case 'x':
                            message3();
							c.anqingse();
							cout<<"  你身上的『吸血虫』已经被甩掉!,但你的血值丢失5,好象还中了毒!"<<endl;
							cout<<"  不过还好,前面有随处可见的";
							c.qingse();
							cout<<"『强酸花』";
							c.anqingse();
							cout<<"专门化解此毒素";
							cout<<"\n";
							//if(s==)
							k.setHP(k.getHP()-5);
							k.shuxing();
							break;
						default:
                           message3();
						   cout<<"\n";
						   c.Hongse();
						   cout<<"『吸血虫』";
						   c.huangse();
						   cout<<"已经喝足你的血液,掉落在黑漆漆的地面上,瞬间消失~!";
						   cout<<"\n";
						   message3();
						   c.Hongse();
						   cout<<"由于你没有及时甩掉『吸血虫』,导致你的血值丢失10"<<endl;
						   k.setHP(k.getHP()-10);
						   k.shuxing();

							break;
						}	}

				}
}
	
void NPC::npc3_penglai()//骷髅战士
{
	        if(k.gety()>44){
						message();//安全信息提示
				  }
               if(k.gety()==44)//---------------------------------怪物1
					{
						npc1_penglai();
					}
			   if(k.gety()==42)
			   {
				  c.anqingse();
				  cout<<"  洞内静的可怕,只能听见自己的心跳声!要想去";
				  c.Hongse();
				  cout<<"  蓬莱(乌龙)";
				  c.anqingse();
				  cout<<"学得招数道行,实不容易~!"<<endl;
				  c.anbaise();
                  cout<<"  按 w或a或d键继续行走....";

⌨️ 快捷键说明

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