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

📄 frame.cpp

📁 RPG小游戏
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				mark=4;
				mark_1=0;
			}
			if(KEYDOWN(VK_SPACE))
			{
				Sleep(100);
				if(i%2==0)count=49;
				else
					count=99;
			}
		}
		if(mark==4)
		{
			if(!mark_1)
			{
				if(cy>=-150)
					cy-=5;
				else
				{
					count=0;
					mark_1=1;
				}
				DDraw_Draw_Surface(lpddsotherpeople[0],cx,cy,73,137, lpddsback,1);
				DDraw_Draw_Surface(HouYi.lpdds[2][2],HouYi.get_x(),HouYi.get_y(),120,120,lpddsback,1);

			}
			if(mark_1==1)
			{
				DDraw_Draw_Surface(houyitou,20,630,100,130,lpddsback,1);
				DDraw_Draw_Surface(HouYi.lpdds[2][2],HouYi.get_x(),HouYi.get_y(),120,120,lpddsback,1);
				count++;
				if(count>50)mark_1=2;
				DDraw_Draw_Surface(talkbar,110,645,898,93,lpddsback,1);
				Draw_Text_GDI("看来我得抓赶时间出发了。",150,690,255,lpddsback);
				if(KEYDOWN(VK_SPACE))count=49;
			}
			if(mark_1==2)
			{
				int **mapinfo=(int **)malloc(4*4);
				for(int i=0;i<4;i++)
					mapinfo[i]=(int *)malloc(4*4);	
				mapinfo[0][0]=1;
				mapinfo[0][1]=250;
				mapinfo[0][2]=1;
				mapinfo[0][3]=200;
				mapinfo[1][0]=250;
				mapinfo[1][1]=773;
				mapinfo[1][2]=1;
				mapinfo[1][3]=300;
				mapinfo[2][0]=773;
				mapinfo[2][1]=1023;
				mapinfo[2][2]=1;
				mapinfo[2][3]=200;
				mapinfo[3][0]=0; 
				HouYi.DrawPeople(mapinfo);
				for( i=0;i<4;i++)
					free(mapinfo[i]);
				free(mapinfo);
				if(HouYi.get_x()>138&&HouYi.get_x()<921&&HouYi.get_y()>617&&HouYi.get_y()<768)
				{
					//lpddsbackground[0]->Release();
			    	//lpddsbackground[2]->Release();
					//lpddsotherpeople[0]->Release();
					GameState=GAMEMAP_2;
					mark=0;
					mark_1=0;
					count=0;
				}
			}
			
		}

		while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));
		Sleep(100);
	return 0;
}
static warrior* kkp[3];

int gamemap2()
{
	
	


	static  warrior guai(30,2,20,10,0,818,430,4);
	static  warrior guai1(60,5,25,17,0,100,700,5);
	static  warrior guai2(40,3,24,14,0,500,310,3);
	
    static  int  rs; 
	static int aaa[3]={6,8,5};
	static int num;
	char *** duihua;
	duihua = (char***) malloc(3*sizeof(char**));
	for(int i = 0;i< 3 ;i++)
	{
		duihua[i] = (char**)malloc(8*sizeof(char*));
		for(int j = 0;j<8;j++)
			duihua[i][j]= (char*)malloc(100);
	}	
//------------------------------------------------------------------
	strcpy(duihua[0][0],"小姑娘,向你打听一些事....");
    strcpy(duihua[0][1],"你是什么人,胆敢擅闯我的地头......");
	strcpy(duihua[0][2],"你的地头???这么说来,你就是为害民间的妖孽了?");
	strcpy(duihua[0][3],"哈哈哈....天堂有路你不走,地狱无门你闯进来");
	strcpy(duihua[0][4],"既然话都说到这份上了,亮出兵器吧!");
    strcpy(duihua[0][5],"不知死活的小子! ");
//--------------------------------------------------------

	strcpy(duihua[2][0],"妖孽,快放下武器束手就擒!");
    strcpy(duihua[2][1],"狂妄的小子!你妄想!");
	strcpy(duihua[2][2],"只要你弃恶从善,我可以给你一条生路.");
	strcpy(duihua[2][3],"废话少说,我们三兄妹纵横三界多年,岂能败给你个黄毛小子!");
	strcpy(duihua[2][4],"那我们只好手底下见真章了。。。");
    
//--------------------------------------------------------
	strcpy(duihua[1][0],"......");
    strcpy(duihua[1][1],"小子你还有点能耐,连败我两兄妹。不过我这关可没那么好过。");
	strcpy(duihua[1][2],"你们为害民间,使得此处荒无人烟。今天有此一劫,也算是你们的报应。");
	strcpy(duihua[1][3],"别说大话了,快快求饶,也许我心情好还能放你一马,哈哈哈。。。");
	strcpy(duihua[1][4],"我倒是想啊,但是有个人恐怕不答应。。。");
    strcpy(duihua[1][5],"谁? ");
	strcpy(duihua[1][6],"我手中的长剑。。。 ");
	strcpy(duihua[1][7],"你。。。。看招!  ");
//--------------------------------------------------------
	kkp[0] = &guai;
	kkp[1]= &guai1;
	kkp[2]= &guai2;
	static int x ;
	static int b=1;




	if(!mark)
	{
		if (!Load_Bitmap_File(&bitmap[0],"resource\\bridge.bmp"))
			return(0);
		lpddsbackground[3]=DDraw_Create_Surface(SCREEN_WIDTH,SCREEN_HEIGHT,0,-1);
		Scan_Image_Bitmap(&bitmap[0],lpddsbackground[3],0,0);
		if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[0].palette)))
			return(0);
		Unload_Bitmap_File(&bitmap[0]);			
			
			if (!Load_Bitmap_File(&bitmap[2],"resource\\fight1_houyi.bmp"))
				return(0);
			lpddsbackground[2]=DDraw_Create_Surface(120,120,0,1);
			Scan_Image_Bitmap(&bitmap[2],lpddsbackground[2],0,0);
			Unload_Bitmap_File(&bitmap[2]);

			if (!Load_Bitmap_File(&bitmap[0],"resource\\fight1.bmp"))
				return(0);
			lpddsbackground[0]=DDraw_Create_Surface(SCREEN_WIDTH,SCREEN_HEIGHT,0,-1);
			Scan_Image_Bitmap(&bitmap[0],lpddsbackground[0],0,0);
			
		//	Unload_Bitmap_File(&bitmap[0]);

  
			{
			if (!Load_Bitmap_File(&bitmap[3],"resource\\guai.bmp"))
					
				return(0);
			for(int i=0;i<4;i++)
				for(int j =0;j<3;j++)
				{
						guai.lpdds1[i][j] = DDraw_Create_Surface(48,64,0,0);
						Scan_Image_Bitmap(&bitmap[3],                
							 guai.lpdds1[i][j],
								j, i); 
						guai1.lpdds1[i][j] = DDraw_Create_Surface(48,64,0,0);
						Scan_Image_Bitmap(&bitmap[3],                
							 guai1.lpdds1[i][j],
								j+3, i+4); 
						guai2.lpdds1[i][j] = DDraw_Create_Surface(48,64,0,0);
						Scan_Image_Bitmap(&bitmap[3],                
							 guai2.lpdds1[i][j],
								j+3, i); 
				}	
				Unload_Bitmap_File(&bitmap[3]);
			}
			guai.set_WH(48,64);
			guai1.set_WH(48,64);
			guai2.set_WH(48,64);
	     

		mark=1;
	}
	
	else 
	{
		
		DDraw_Draw_Surface(lpddsbackground[3],0,0,SCREEN_WIDTH,SCREEN_HEIGHT,lpddsback,0);
			static	int **a;
		a= (int **)malloc(2*sizeof(int **));
		for( i = 0 ;i<2;i++)
		a[i]=(int *)malloc(4*sizeof(int *));
		a[0][0] = 1;
		a[0][1] = 1023;
		a[0][2] = 1;
		a[0][3] = 300;
		a[1][0] = 0;
				
		if(mark==1)
		{
		 for(num= 0 ;num<3;num++)
		 {
			 if(kkp[num]->get_life())
				 kkp[num]->free_walk(a);
		 }
	   	
		
			HouYi.DrawPeople(a);
			int cc, dd;
			
			for(num=0;num<3;num++)
			{
				cc = HouYi.get_x()-kkp[num]->get_x();
		    	dd = HouYi.get_y()-kkp[num]->get_y();
		    	cc= cc*cc+dd*dd;
	  	        if(kkp[num]->get_life()&&(num!=1||(num ==1&&(kkp[0]->get_life()==0)&&(kkp[2]->get_life()==0))))			
		        	if(cc<=10000)
					{
						talk(lpddsbackground[3],HouYi.lpdds[0][3],kkp[num]->lpdds1[2][1],duihua[num],aaa[num]);
						rs=fight(lpddsbackground[0],lpddsbackground[2],lpddsbackground[2],*(kkp[num]));
							PlaySound(MAKEINTRESOURCE(IDR_WAVE6),hinstance_app,SND_ASYNC|SND_RESOURCE|SND_LOOP);	
						if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[1].palette)))
							return(0);
							mark=2;
					}
					
			}
			if(!kkp[1]->get_life())
			{
				changer.free_walk(a);
				cc = HouYi.get_x()-changer.get_x();
		    	dd = HouYi.get_y()-changer.get_y();
		    	cc= cc*cc+dd*dd;
				tou=1;
				if(cc<=10000)
				{
   					char ** word;
                	word = (char**) malloc(10*sizeof(char*));
                	for(int i = 0;i< 10 ;i++)
						word[i] = (char*)malloc(100);
					strcpy(word[0],"啊");
					strcpy(word[1],"后羿将军!");
					strcpy(word[2],"嫦娥怎么是你啊,你下凡来此,有什么急事吗?");
					strcpy(word[3],"我听说将军下凡除魔,惟恐将军有什么不测,特来此相助。我,我....就是担心将军啊....");
					strcpy(word[4],".......");
					strcpy(word[5],".......");
					strcpy(word[6],"你的心思我都明白...只是我们都身为仙人,今生恐怕只能无缘了。后羿要辜负姑娘的一番心意了。。。");
					strcpy(word[7],"将军千万别这么说......嫦娥别无所求,只愿能见到将军平安无事就心满意足了......");
					strcpy(word[8],"恩,姑娘的一番深情,后羿怎会不知。但愿仙人也有来世吧。。。");
					strcpy(word[9],"将军心系天下苍生,以造福民间为己任,嫦娥能认识将军,是嫦娥的福分。。。");
					talk(lpddsbackground[3],houyitou
						    ,lpddsotherpeople[1],word,10);
				    mark=3;
					num=1;
					for(i=0;i<3;i++)
						free(word[i]);
					free(word);
				}
				
			}
			for(i=0;i<3;i++)
			{
				for(int j=0;j<8;j++)
					free(duihua[i][j]);
				free(duihua[i]);
			}			
			free(duihua);			
		

		}
		if(mark==2)
		{	
		      		
			if(!rs)
			mark=1;
			else
			{
				if(!HouYi.get_life())
				{			
					GameState = START_PICTURE;				
				}
				else mark=1;
			}		
		}
		if(mark== 3)
		{	
		  if(num<=350)
		     num+=5;
		   DDraw_Draw_Surface(lpddsotherpeople[0],500,num,73,137, lpddsback,1);
		   HouYi.position();
		   changer.position();
		   if(num>=350)
		   {
			   char**  word1;
			   tou=3;
			   word1 = (char**) malloc(10*sizeof(char*));
               for(int i = 0;i<10 ;i++)
				   word1[i] = (char*)malloc(120);
			   strcpy(word1[0],"参见玉帝!臣幸不辱命,已经降服众妖魔,相信百姓又可以过上好日子。");
			   strcpy(word1[1],"后羿你做得好! 朕一直以来很佩服你的为人,对你和嫦娥的事也略闻一二......");
			   strcpy(word1[2],"玉帝我。。。。");
			   strcpy(word1[3],"你不用说了,朕理解你们。只是天规难为,朕即使身处帝位,有心成全你们,却也无法做到。。。");
			   strcpy(word1[4],"臣明白。");
               strcpy(word1[5],"现在三界又将面临新的劫难,魔王复苏,十个太阳神也受他蛊惑,甘心沦为魔道,并将于明白起同时出现。");
			   strcpy(word1[6],"啊?那到时候人间岂不成了火海,生灵涂炭?");
			   strcpy(word1[7],"恩,先知已然料到此情景,并预示,上天指定的拯救三界限的确良人选就是你和嫦娥了。。。");
			   strcpy(word1[8],"臣愿赴汤蹈火,拯救众生于危难之中,死也无悔。。。。");
			   strcpy(word1[9],"只是根据预示,完成任务后,嫦娥将永赴月宫,一世孤苦,而你也将永留民间,成为凡人,你可要考虑清楚。。。");
			   talk(lpddsbackground[3],houyitou ,yuditou,word1,10);
		       for(i=0;i<10;i++)
				   free(word1[i]);
			   free(word1);
			   mark=4;
		 	}
	       

		   
		}
		if(mark==4)
		{
			if(num>=-100)
			{
				DDraw_Draw_Surface(lpddsotherpeople[0],500,num,73,137, lpddsback,1);
				num-=5;
			}			
			HouYi.position();
			changer.position();
			if(num<=-100)
			{
				char ** word1;
				word1 = (char**) malloc(12*sizeof(char*));
                 for(int i = 0;i<12 ;i++)
				   word1[i] = (char*)malloc(120);
				  strcpy(word1[0],"嫦娥。。。");
				  strcpy(word1[1],"我明白将军的难处,将军宁愿舍弃自己的生命也不愿看着生灵涂炭。。。。");
				  strcpy(word1[2],"可是如果确如先知所言,拯救苍生以后,我们也将永不能相见。。。");
				  strcpy(word1[3],"嫦娥明白。嫦娥怎可为一己私情,而置将军信念于不顾,置天下苍生于不顾呢?");
				  strcpy(word1[4],"是我对不起你。。。");
				  strcpy(word1[5],"不,有将军这一番话足矣。嫦娥即使永世都身处月宫,也不会感到孤单。");
				  strcpy(word1[6],"我会把我的心永远地放在月宫,愿能长伴你左右。");
				  strcpy(word1[7],"将军心在的地方,就是嫦娥的天堂。");
				  strcpy(word1[8],"......");
				  strcpy(word1[9],"......");
				  strcpy(word1[10],"事不宜迟,我们马上出发吧。");
				  strcpy(word1[11],"恩。 ");
				  tou=1;
				  talk(lpddsbackground[3],houyitou,lpddsotherpeople[1],word1,12);
				  for(i=0;i<12;i++)
				     free(word1[i]);
			              free(word1);
						  GameState=GAMEMAP_3;
						  mark=0;

			}


		}
		for(i=0;i<2;i++)
			free(a[i]);
		free(a);
		
		
		while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));
		Sleep(50);
	}
	
	return 0;
}
int gamemap3()
{

	static int rs;
	static warrior guai1 (45,7,30,10,0,814,410,5);
	static warrior guai2 (75,8,25,20,0,814,700,6);
	static warrior aboluo (150,10,33,25,0,400,500,10);

	static int** a;
	a= (int **)malloc(4*sizeof(int **));
	for(int i = 0 ;i<4;i++)
	a[i]=(int *)malloc(4*sizeof(int *));
	a[0][0] = 1;
	a[0][1] = 300;
	a[0][2] = 1;
	a[0][3] = 250;
	a[1][0] = 300;
	a[1][1] = 724;
	a[1][2] = 1;
	a[1][3] = 300;
	a[2][0] = 700;
	a[2][1] = 1023;
	a[2][2] = 1;
	a[2][3] = 250;
	a[3][0] = 0;  

	

	if(!mark)
	{
		if (!Load_Bitmap_File(&bitmap[0],"resource\\gamemap3.bmp"))
			return(0);
		lpddsbackground[4]=DDraw_Create_Surface(SCREEN_WIDTH,SCREEN_HEIGHT,0,-1);
		Scan_Image_Bitmap(&bitmap[0],lpddsbackground[4],0,0);
		if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[0].palette)))
			return(0);
		Unload_Bitmap_File(&bitmap[0]);

		
		if (!Load_Bitmap_File(&bitmap[0],"resource\\aboluo.bmp"))
			return(0);
		lpddsotherpeople[2]=DDraw_Create_Surface(172,224,0,0);
		Scan_Image_Bitmap(&bitmap[0],lpddsotherpeople[2],0,0);
		Unload_Bitmap_File(&bitmap[0]);

		if (!Load_Bitmap_File(&bitmap[0],"resource\\aboluotou.bmp"))
			return(0);
		lpddsotherpeople[3]=DDraw_Create_Surface(96,96,0,0);
		Scan_Image_Bitmap(&bitmap[0],lpddsotherpeople[3],0,0);
		Unload_Bitmap_File(&bitmap[0]);
		
		kkp[0]=&guai1;
		kkp[1]=&guai2;
     	if (!Load_Bitmap_File(&bitmap[0],"resource\\guai2.bmp"))
			return(0);
		for(int i=0;i<4;i++)
			for(int j =0;j<3;j++)
			{
				guai1.lpdds1[i][j] = DDraw_Create_Surface(53,71,0,0);
				Scan_Image_Bitmap(&bitmap[0],                
					 guai1.lpdds1[i][j],
					j+6, i+4); 
				guai2.lpdds1[i][j] = DDraw_Create_Surface(53,71,0,0);
				Scan_Image_Bitmap(&bitmap[0],                
					 guai2.lpdds1[i][j],
					j+9, i+4); 
			}	
			Unload_Bitmap_File(&bitmap[0]);
		
			guai1.set_WH(53,71);
			guai2.set_WH(53,71);
			lpddsbackground[0]->Release();
			if(!Load_Bitmap_File(&bitmap[0],"resource\\fight1.bmp"))
		         return(0);
		   	lpddsbackground[0]=DDraw_Create_Surface(SCREEN_WIDTH,SCREEN_HEIGHT,0,-1);
	        Scan_Image_Bitmap(&bitmap[0],lpddsbackground[0],0,0);
			Unload_Bitmap_File(&bitmap[0]);
				mark=1;
		

⌨️ 快捷键说明

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