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

📄 winmain.cpp

📁 hfytdfgsfddhjghiufydstdfhgjhkl
💻 CPP
📖 第 1 页 / 共 5 页
字号:
       bb_s[w].dsbuffer->SetCurrentPosition(0);
	   bb_s[w].dsbuffer->Release();
	   bb_s[w].dsbuffer=NULL;
	  }
   }
 /*for (int w=0;w<FIREE_NUM;w++)//敌机子弹--------------------------
   {if( firee_s[w].dsbuffer)
      { firee_s[w].dsbuffer->Stop();
       firee_s[w].dsbuffer->SetCurrentPosition(0);
	   firee_s[w].dsbuffer->Release();
	   firee_s[w].dsbuffer=NULL;
	  }
   }*/
   for (int w=0;w<FIRE_NUM;w++)//我机的子弹--------------
   {if( fire_s[w].dsbuffer)
      {fire_s[w].dsbuffer->Stop();
       fire_s[w].dsbuffer->SetCurrentPosition(0);
	   fire_s[w].dsbuffer->Release();
	   fire_s[w].dsbuffer=NULL;
	  }
   }
   for (int w=0;w<PLANEE_NUM;w++)//敌机声音--------------
   {if( planee_s[w].dsbuffer)
      {planee_s[w].dsbuffer->Stop();
       planee_s[w].dsbuffer->SetCurrentPosition(0);
	   planee_s[w].dsbuffer->Release();
	   planee_s[w].dsbuffer=NULL;
	  }
   }
lpds->Release();
//------------------------------------------------Unload Direct Draw--------------------------
// kill all the surfaces
if(lpddsplane)
 {lpddsplane->Release;
  lpddsplane=NULL;
 }

// first the palette
if (lpddpal)
   {
   lpddpal->Release();
   lpddpal = NULL;
   } // end if
//if(lpddsback)
//   {
 //  lpddsback->Release;
 //  lpddsback->NULL;
 //  }
// now the primary surface
if (lpddsprimary)
   {
   lpddsprimary->Release();
   lpddsprimary = NULL;
   } // end if

// now blow away the IDirectDraw4 interface
if (lpdd)
   {
   lpdd->Release();
   lpdd = NULL;
   } // end if
// return success or failure or your own return code here
return(1);

} 
//---------------------------------------------- end Game_Shutdown------------------------------

// -----------------------------------------------下面是一些关于我菜单的函数--------------------

int my_key_oo()//用来得到一个按键并返回---------------------------
{while(1)
 { if(KEYDOWN(VK_ESCAPE))
         {Sleep(600);
          return (-1);
		 }
    for (int w=0;w<500;w++)
      {if(KEYDOWN(w)) 
         {if(w!=13 & w!=27)
            {Sleep(200);
             return(w);
			}
		 }
	  }
  Sleep(50);
  lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
  lpddsprimary->GetDC(&my_dc);
  my_rect(300,285,500,315);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);
  sprintf(buffer,"请按下你要定义的键");
  TextOut(my_dc,310,290,buffer,strlen(buffer));

 }//end while-------------------------

}
//----------------------------------------end my_key_oo()--------------------------------------
int my_key()//-------------------------------定义键盘--------------------
{int my_left1=my_left,my_right1=my_right,my_up1=my_up,my_down1=my_down,my_fire1=my_fire;
	 while(1)
    {if(KEYDOWN(VK_ESCAPE))
        {Sleep(600);
         return(1);
		}
     if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
	    {if(n==0)
		      {Sleep(200);
	           int w=my_key_oo();
			   if(w>0)
				   my_up1=w;
	           bb=5;
			  }
		else if(n==1)
		     { Sleep(200);
	           int w=my_key_oo();
			   if(w>0)
				   my_down1=w;
	           bb=5;
			 }
 		else if(n==2)
		      {Sleep(200);
	           int w=my_key_oo();
			   if(w>0)
				   my_left1=w;
	           bb=5;
			  }
		else if(n==3)
		     { Sleep(200);
	           int w=my_key_oo();
			   if(w>0)
				   my_right1=w;
	           bb=5;
			 }
 		else if(n==4)
		     { Sleep(200);
	           int w=my_key_oo();
			   if(w>0)
				   my_fire1=w;
	           bb=5;
			 }

		else if(n==5)
		     {Sleep(200);  
			  my_left=my_left1;
			  my_right=my_right1;
			  my_up=my_up1;
			  my_down=my_down1;
			  my_fire=my_fire1;
			  return (1);
			 }
		else 
		     {Sleep(200);
              return (1);
			  }
		}
 if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {n++;
        n=n%7;
	    bb_s[n].dsbuffer->Play(0,0,0);
	    }
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
      {n--;
       if(n==-1)
		   n=6;
	   bb_s[n].dsbuffer->Play(0,0,0);
	  }
  Sleep(100);
  lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
  lpddsprimary->GetDC(&my_dc);
  my_rect(250,180,550,210);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  my_rect(300,(210+n*30),500,(240+n*30));
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));
  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);
  sprintf(buffer,"选定选项后按回车键开始重新定义(ESC返回)");
  TextOut(my_dc,260,185,buffer,strlen(buffer));
  sprintf(buffer,"向上键目前定义为:%c",my_up1);
  TextOut(my_dc,310,215,buffer,strlen(buffer));
  sprintf(buffer,"向下键目前定义为:%c",my_down1);
  TextOut(my_dc,310,245,buffer,strlen(buffer));
  sprintf(buffer,"向左键目前定义为:%c",my_left1);
  TextOut(my_dc,310,275,buffer,strlen(buffer));
  sprintf(buffer,"向右键目前定义为:%c",my_right1);
  TextOut(my_dc,310,305,buffer,strlen(buffer));
  sprintf(buffer,"开火键目前定义为:%c",my_fire1);
  TextOut(my_dc,310,335,buffer,strlen(buffer));
  sprintf(buffer,"保存设置并返回");
  TextOut(my_dc,310,365,buffer,strlen(buffer));
  sprintf(buffer,"不保存设置返回");
  TextOut(my_dc,310,395,buffer,strlen(buffer));
  lpddsprimary->ReleaseDC(my_dc);

	}//------------------end while------------

}


int over_sco_stat()//------------------------选择过关分数---------------------------
{
 while(1)
    {if(KEYDOWN(VK_ESCAPE))
        {Sleep(600);
         return(1);
		}
     if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
	    {if(n==0)
		      {Sleep(200);
	           over_sco=50;
		       return (1);
			  }
		else if(n==1)
		     { Sleep(200);
		       over_sco=100;
				 return (1);
			 }
 		else if(n==2)
		      {Sleep(200);
	           over_sco=200;
	           return (1);
			  }
		else if(n==3)
		     { Sleep(200);
		       over_sco=300;
				 return (1);
			 }
		else if(n==4)
		     {Sleep(200);
	          over_sco=400;
              return (1);
			  }
		else if(n==5)
		      {Sleep(200);
		       over_sco=500;
			   return(1);
			  }
		else if(n==6)
		      {Sleep(200);
		       over_sco=600;
			   return(1);
			  }
		else if(n=7)
		      {Sleep(200);
		       over_sco=700;
			   return(1);
			  }
		else
		      {Sleep(200);
		       over_sco=100;
			   return(1);
			  }

		}
 if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {n++;
        n=n%8;
	    bb_s[n].dsbuffer->Play(0,0,0);
	    }
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
      {n--;
       if(n==-1)
		   n=7;
	   bb_s[n].dsbuffer->Play(0,0,0);
	  }
  Sleep(100);
  lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
  lpddsprimary->GetDC(&my_dc);
  my_rect(300,165,500,195);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  my_rect(300,(195+n*30),500,(225+n*30));
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));
  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);
  sprintf(buffer,"选择过关分数(ESC返回)");
  TextOut(my_dc,310,170,buffer,strlen(buffer));
  sprintf(buffer,"50分过关");
  TextOut(my_dc,310,200,buffer,strlen(buffer));
  sprintf(buffer,"100分过关");
  TextOut(my_dc,310,230,buffer,strlen(buffer));
  sprintf(buffer,"200分过关");
  TextOut(my_dc,310,260,buffer,strlen(buffer));
  sprintf(buffer,"300分过关",grade+1);
  TextOut(my_dc,310,290,buffer,strlen(buffer));
  sprintf(buffer,"400分过关");
  TextOut(my_dc,310,320,buffer,strlen(buffer));
  sprintf(buffer,"500分过关");
  TextOut(my_dc,310,350,buffer,strlen(buffer));
  sprintf(buffer,"600分过关");
  TextOut(my_dc,310,380,buffer,strlen(buffer));
  sprintf(buffer,"700分过关");
  TextOut(my_dc,310,410,buffer,strlen(buffer));


  lpddsprimary->ReleaseDC(my_dc);

	}//------------------end while------------



}


int star_stat_n()//------------------------------选择星星个数-------------
{
 while(1)
    {if(KEYDOWN(VK_ESCAPE))
        {Sleep(600);
         return(1);
		}
     if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
	    {if(n==0)
		      {Sleep(200);
	           star_num=0;
	           return (1);
			  }
		else if(n==1)
		     { Sleep(200);
		       star_num=200;
				 return (1);
			 }
 		else if(n==2)
		      {Sleep(200);
	           star_num=400;
	           return (1);
			  }
		else if(n==3)
		     { Sleep(200);
		       star_num=600;
				 return (1);
			 }
		else if(n==4)
		     {Sleep(200);
	          star_num=800;
              return (1);
			  }
		else if(n==5)
		      {Sleep(200);
		       star_num=1000;
			   return(1);
			  }
		else
		      {Sleep(200);
		       star_num=800;
			   return(1);
			  }

		}
 if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {n++;
        n=n%6;
	    bb_s[n].dsbuffer->Play(0,0,0);
	    }
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
      {n--;
       if(n==-1)
		   n=5;
	   bb_s[n].dsbuffer->Play(0,0,0);
	  }
  Sleep(100);
  lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
  lpddsprimary->GetDC(&my_dc);
  my_rect(300,195,500,225);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  my_rect(300,(225+n*30),500,(255+n*30));
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));
  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);
  sprintf(buffer,"选择星星个数(ESC返回)");
  TextOut(my_dc,310,200,buffer,strlen(buffer));
  sprintf(buffer,"没有星星");
  TextOut(my_dc,310,230,buffer,strlen(buffer));
  sprintf(buffer,"200个星星");
  TextOut(my_dc,310,260,buffer,strlen(buffer));
  sprintf(buffer,"400个星星");
  TextOut(my_dc,310,290,buffer,strlen(buffer));
  sprintf(buffer,"600个星星",grade+1);
  TextOut(my_dc,310,320,buffer,strlen(buffer));
  sprintf(buffer,"800个星星");
  TextOut(my_dc,310,350,buffer,strlen(buffer));
  sprintf(buffer,"1000个星星");
  TextOut(my_dc,310,380,buffer,strlen(buffer));

  lpddsprimary->ReleaseDC(my_dc);

	}//------------------end while------------

	
}


int star_stat_c()//-------------------------------选择星星顔色------------
{
 while(1)
    {if(KEYDOWN(VK_ESCAPE))
        {Sleep(600);
         return(1);
		}
     if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
	    {if(n==1)
		      {Sleep(200);
	           star_stat=1;
	           return (1);
			  }
		else if(n==2)
		     { Sleep(200);
		       star_stat=2;
				 return (1);
			 }
 		else if(n==3)
		      {Sleep(200);
	           star_stat=3;
	           return (1);
			  }
		else if(n==4)
		     { Sleep(200);
		       star_stat=4;
				 return (1);
			 }
		else 
		     {Sleep(200);
	          star_stat=0;
              return (1);
			  }
		}
 if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {n++;
        n=n%5;
	    bb_s[n].dsbuffer->Play(0,0,0);
	    }
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
      {n--;
       if(n==-1)
		   n=4;
	   bb_s[n].dsbuffer->Play(0,0,0);
	  }

⌨️ 快捷键说明

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