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

📄 winmain.cpp

📁 hfytdfgsfddhjghiufydstdfhgjhkl
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  Sleep(100);
  lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
  lpddsprimary->GetDC(&my_dc);
  my_rect(300,210,500,240);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  my_rect(300,(240+n*30),500,(270+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,215,buffer,strlen(buffer));
  sprintf(buffer,"黑白");
  TextOut(my_dc,310,245,buffer,strlen(buffer));
  sprintf(buffer,"红色");
  TextOut(my_dc,310,275,buffer,strlen(buffer));
  sprintf(buffer,"绿色");
  TextOut(my_dc,310,305,buffer,strlen(buffer));
  sprintf(buffer,"蓝色",grade+1);
  TextOut(my_dc,310,335,buffer,strlen(buffer));
  sprintf(buffer,"彩色");
  TextOut(my_dc,310,365,buffer,strlen(buffer));
  lpddsprimary->ReleaseDC(my_dc);

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

}


int fire_stat_()//-----------------------------------选择子弹模式-------------------
{int w=fire_stat;
 while(1)
    {if(KEYDOWN(VK_ESCAPE))
        {Sleep(600);
         return(w);
		}
     if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
	    { if(n==0)
	          {Sleep(200);
               return (0);
			  }
		else if(n==1)
		      {Sleep(200);
	           return (1);
			  }
		else
		     { return (w);
			 }
		}
    if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {n++;
        n=n%2;
	    bb_s[n].dsbuffer->Play(0,0,0);
	    }
    if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
      {n--;
       if(n==-1)
		   n=1;
	   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,240,500,270);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));
  my_rect(300,(270+n*30),500,(300+n*30));
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));
  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);
  sprintf(buffer,"选择子弹模式");
  TextOut(my_dc,310,245,buffer,strlen(buffer));
  sprintf(buffer,"单弹",grade+1);
  TextOut(my_dc,310,275,buffer,strlen(buffer));
  sprintf(buffer,"三弹连发");
  TextOut(my_dc,310,305,buffer,strlen(buffer));
  lpddsprimary->ReleaseDC(my_dc);

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


int my_option()//-----------------------------选项------------------------------
{while(1)
  {
	if(KEYDOWN(VK_ESCAPE))
      { Sleep(600);
	    bb=0;
        return (0);
	  }
    if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
      {if(bb==0)//子弹模式------------------------
           {Sleep(200);
            n=0;
            fire_stat=fire_stat_();
			bb=5;
	       }
	    else if(bb==1)//星星顔色---------------------------
	       {
            Sleep(200);
			n=0;
			star_stat_c();
	        bb=5;
	   	   }
	    else if(bb==2)//星星个数----------------------------
	       { 
            Sleep(200);
			n=0;
			star_stat_n();
			bb=5;
	    	}
		else if(bb==3)//过关分数--------------------------
		    {Sleep(200);
		     n=0;
			 over_sco_stat();
			 bb=5;
		    }
		else if(bb==4)//定义键盘----------------------------------
		    {Sleep(200);
		     n=0;
			 my_key();
			 bb=5;
		    }
		else 
		  {Sleep(200);
		   bb=0;
		   return (0);
		  }
      }  
     if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
       {bb++;
        bb=bb%6;
	    bb_s[bb].dsbuffer->Play(0,0,0);
	   }
     if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
       {bb--;
        if(bb==-1)
		   bb=5;
	    bb_s[bb].dsbuffer->Play(0,0,0);
	   }
   Sleep(100);
   lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
   lpddsprimary->GetDC(&my_dc);
   SetTextColor(my_dc,RGB(0,100,100));
   SetBkMode(my_dc,TRANSPARENT);
   my_rect(300,(210+bb*30),500,(240+bb*30));
   FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));
   
   sprintf(buffer,"子弹模式");
   TextOut(my_dc,350,215,buffer,strlen(buffer));

   sprintf(buffer,"背景星星颜色");
   TextOut(my_dc,350,245,buffer,strlen(buffer));

   sprintf(buffer,"背景星星的个数");
   TextOut(my_dc,350,275,buffer,strlen(buffer));

   sprintf(buffer,"过关的分数");
   TextOut(my_dc,350,305,buffer,strlen(buffer));

   sprintf(buffer,"定义键盘");
   TextOut(my_dc,350,335,buffer,strlen(buffer));

   sprintf(buffer,"ESC键返回");
   TextOut(my_dc,350,365,buffer,strlen(buffer));
   lpddsprimary->ReleaseDC(my_dc);

  }
}//---------------------------------------------------------end 选项--------------

int my_about()//-----------------------------------------关于------------------
{while(1)
  {
	if(KEYDOWN(VK_ESCAPE) | KEYDOWN(VK_RETURN) | KEYDOWN(VK_SPACE) | KEYDOWN(my_fire) )
      {Sleep(200);
       return (1);
      }
    Sleep(100);
    //my_rect(300,250,500,350);
	//lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);
    lpddsprimary->GetDC(&my_dc);
   // FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));
    SetTextColor(my_dc,RGB(0,100,100));
	SetBkMode(my_dc,TRANSPARENT);
	sprintf(buffer,"ESC退出 回车暂停");
	TextOut(my_dc,310,210,buffer,strlen(buffer));
	sprintf(buffer,"空格键为射击");
	TextOut(my_dc,310,245,buffer,strlen(buffer));
	sprintf(buffer,"小键盘的方向键分别为上下左右");
	TextOut(my_dc,310,280,buffer,strlen(buffer));

    sprintf(buffer,"我,吴国清,2002年12月于华中农业大学读大四,");
	TextOut(my_dc,250,315,buffer,strlen(buffer));
	sprintf(buffer,"如果对我的游戏有兴趣或建议,请联系我:");
	TextOut(my_dc,250,340,buffer,strlen(buffer));
	sprintf(buffer,"EMAIL: wuguqi@163.com        QQ: 64828978");
	TextOut(my_dc,250,365,buffer,strlen(buffer));
	lpddsprimary->ReleaseDC(my_dc);
  }
}//-------------------------------------end 关于-----------------------
  
///-------------------------------------选择难度--------------------
int intgrade()
{while (1)
  {
	  if(KEYDOWN(VK_ESCAPE))
	       {lpddsprimary->GetDC(&my_dc);
		    my_rect(300,195,500,405);
            FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));
		    lpddsprimary->ReleaseDC(my_dc);
		    Sleep(200);
		    bb=0;
			return (-1);
		   }
	  if(KEYDOWN(VK_RETURN) | KEYDOWN(my_fire) |KEYDOWN(VK_SPACE) )
          {u=abs(u)%6+1;
	       bb=0;
           Sleep(200);
           lpddsprimary->GetDC(&my_dc);
		   my_rect(300,195,500,405);
           FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));
		   lpddsprimary->ReleaseDC(my_dc);
            return (u);
	      }
	   if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
	      {u++;
	       u=u%6;
           bb_s[u].dsbuffer->Play(0,0,0);	   
	      }
	   if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
	      {u--;
	        if(u==-1)
				u=5;
	       bb_s[u].dsbuffer->Play(0,0,0);	
	       }
	
 // STAR_TIME=GetTickCount();
  //while((GetTickCount()-STAR_TIME)<33)
  //{}
  Sleep(100);
  lpddsprimary->GetDC(&my_dc);

  my_rect(300,195,500,225);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));

  my_rect(300,225,500,425);
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));

  my_rect(300,(225+30*u),500,(255+30*u));
  FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));

  SetTextColor(my_dc,RGB(0,100,100));
  SetBkMode(my_dc,TRANSPARENT);

  sprintf(buffer,"请选择难度:",(grade+1)%6);
  TextOut(my_dc,360,200,buffer,strlen(buffer));

  sprintf(buffer,"难度1");
  TextOut(my_dc,360,230,buffer,strlen(buffer));
 
  sprintf(buffer,"难度2");
  TextOut(my_dc,360,260,buffer,strlen(buffer));

  sprintf(buffer,"难度3");
  TextOut(my_dc,360,290,buffer,strlen(buffer));
  
  sprintf(buffer,"难度4");
  TextOut(my_dc,360,320,buffer,strlen(buffer));
  
  sprintf(buffer,"难度5");
  TextOut(my_dc,360,350,buffer,strlen(buffer));
 
  sprintf(buffer,"难度6");
  TextOut(my_dc,360,380,buffer,strlen(buffer));
  
  lpddsprimary->ReleaseDC(my_dc);
  }
}//--------------------------------------end 选择难度-------------------------

//-------------------------------------<1> 暂停-------------------------
void game_pause()
{
 if(KEYDOWN(VK_RETURN) | KEYDOWN(my_fire) | KEYDOWN(VK_SPACE) )
     {end=0;
      Sleep(300);
	 }
 if(KEYDOWN(VK_ESCAPE))
	 PostQuitMessage(0);
 
 lpddsprimary->GetDC(&my_dc);
 SetTextColor(my_dc,RGB(100,0,255));
 SetBkMode(my_dc,TRANSPARENT);
 sprintf(buffer,"游戏正暂停!");
 TextOut(my_dc,350,250,buffer,strlen(buffer));
 sprintf(buffer,"回车键取消暂停");
 TextOut(my_dc,350,300,buffer,strlen(buffer));
 sprintf(buffer,"ESC键退出游戏");
 TextOut(my_dc,350,350,buffer,strlen(buffer));
 lpddsprimary->ReleaseDC(my_dc);
 //lpddsprimary->Flip(NULL,DDFLIP_WAIT);
}


//-----------------------------------<2> 在游戏中按下ESC键--------------
void game_esc()
{ if(KEYDOWN(VK_ESCAPE))
      PostQuitMessage(0);
  if(KEYDOWN(VK_RETURN) |KEYDOWN(VK_SPACE) | KEYDOWN(my_fire))
    {if(bb==0)
      {
       end=0;
	   Sleep(200);
	  }
	  else if(bb==1)
	  {u=0;
       Sleep(200);
	   u=grade-1;
	   int w=intgrade();
	   if(w!=grade & w!=-1)
	      {grade=w;
	       my_game_init();
		  }
	   //lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);

	  }
	  else 
	    { bb=0;
		  Sleep(200);
		  end=6;
		}
     }
  if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
    {bb++;
     bb=bb%3;
	 bb_s[bb].dsbuffer->Play(0,0,0);
	}
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
    {bb--;
     if(bb==-1)
		 bb=2;
	 bb_s[bb].dsbuffer->Play(0,0,0);
	}
 Sleep(100);
 lpddsprimary->GetDC(&my_dc);
 SetTextColor(my_dc,RGB(0,100,100));
 SetBkMode(my_dc,TRANSPARENT);
 my_rect(300,240,500,270);
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));

 my_rect(300,270,500,360);
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));

 my_rect(300,(270+bb*30),500,(300+bb*30));
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));

 sprintf(buffer,"ESC键退出");
 TextOut(my_dc,350,245,buffer,strlen(buffer));

 sprintf(buffer,"回到游戏");
 TextOut(my_dc,350,275,buffer,strlen(buffer));

 sprintf(buffer,"选择难度");
 TextOut(my_dc,350,305,buffer,strlen(buffer));

 sprintf(buffer,"回到主菜单");
 TextOut(my_dc,350,335,buffer,strlen(buffer));

 lpddsprimary->ReleaseDC(my_dc);
  // Sleep(300);

}

//------------------------------------<3>你挂了------------------------------------
void game_death()
{
 if(KEYDOWN(VK_ESCAPE))
	 PostQuitMessage(0);
if(KEYDOWN(VK_RETURN) )
    {if(bb==0)
      {my_game_init();
       end=0;
	   Sleep(200);
	  }
	  else if(bb==1)
	  {u=0;
       Sleep(200);
	   u=grade-1;
	   int w=intgrade();
	   if(w!=-1)
		   grade=w;
	   //lpddsprimary->Blt(NULL,NULL,NULL,DDBLT_WAIT|DDBLT_COLORFILL,&ddbltfx);

	  }
	  else 
	    { bb=0;
		  Sleep(200);
		  end=6;
		}
     }
  if(KEYDOWN(my_down) | KEYDOWN(VK_DOWN))
    {bb++;
     bb=bb%3;
	 bb_s[bb].dsbuffer->Play(0,0,0);
	}
  if(KEYDOWN(my_up) | KEYDOWN(VK_UP))
    {bb--;
     if(bb==-1)
		 bb=2;
	 bb_s[bb].dsbuffer->Play(0,0,0);
	}
 Sleep(100);
 lpddsprimary->GetDC(&my_dc);
 SetTextColor(my_dc,RGB(0,100,100));
 SetBkMode(my_dc,TRANSPARENT);
 my_rect(300,240,500,270);
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,255,0)));

 my_rect(300,270,500,360);
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(0,0,0)));

 my_rect(300,(270+bb*30),500,(300+bb*30));
 FillRect(my_dc,&rect,CreateSolidBrush(RGB(255,0,0)));

 sprintf(buffer,"你挂了!");
 TextOut(my_dc,350,245,buffer,strlen(buffer));

 sprintf(buffer,"再来一次");
 TextOut(my_dc,350,275,buffer,strlen(buffer));

 sprintf(buffer,"选择难度");
 TextOut(my_dc,350,305,buffer,strlen(buffer));

 sprintf(buffer,"回到主菜单");
 TextOut(my_dc,350,335,buffer,strlen(buffer));

⌨️ 快捷键说明

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