Example #1
0
int main(int argc, char *argv[])
{
 init(); //init SDL
 g_CWindow.SSurface = SDL_SetVideoMode( WIDTH , HEIGHT , 32 , SDL_DOUBLEBUF|SDL_HWSURFACE|SDL_ANYFORMAT); //assign surface 
 g_pCMenu          = MD2Model::load("menu.md2");
 g_SPlayer.pCModel = MD2Model::load("player.md2");
 g_SPlayer.pCLaser = MD2Model::load("laser.md2");
 g_pCLoop          = MD2Model::load("loop.md2");

 Uint32 u32Start;
 while (g_bRunning)
 {
   u32Start = SDL_GetTicks(); //Get the tick this cycle started on

  
  if(g_dAngle>360)
    g_dAngle = 0;
  if(g_dAngle < 0 )
    g_dAngle = 360;
 
  control(); //get user input
  if(!g_bStart)
     draw_menu(); //Draw 'Seizure Ships!
  else
      if(!lost) 
      game(); //Update game status
	  else
	      lose();
 if(!lost) {
   if(g_bThreadVisualization) {  //Shows triangles drawn by each thread
     g_CWindow.draw_text("Work thread 1",0,24*2,RED);
	 g_CWindow.draw_text("Work thread 2",0,24*3,GREEN);
	 g_CWindow.draw_text("Work thread 3",0,24*4,BLUE);
	 g_CWindow.draw_text("Work thread 4",0,24*5,CYAN);
	 g_CWindow.draw_text("Work thread 5",0,24*6,PURPLE);
	 g_CWindow.draw_text("Work thread 6",0,24*7,YELLOW);
	 g_CWindow.draw_text("Press 'v' to disable Thread Visualization mode",0,24*19,WHITE);
	 
   }
   else {
         g_CWindow.draw_text("Press 'v' to enable Thread Visualization mode",0,24*19,WHITE);
	   }
  g_CWindow.draw_text("Press 'p' to pause",0,24*17,WHITE);	   
  g_CWindow.draw_text("Controls: ARROWS to move and ENTER to fire",0,24*18,WHITE);
   backdrop(); //Draw our g_pCLoop backdrop
  }
  if((g_bRestart)&&(lost)) { //you suck at this game
     thread a(system,"start.exe");
	 SDL_Delay(100); //Give system enough time to execute new instance
	 exit(0);
	}
	else
	    g_bRestart = false;
		
  g_CWindow.draw(); //Update screen
  if(1000/60>(SDL_GetTicks()-u32Start)) //Always keep constant framerate (60fps)
    SDL_Delay(1000/60-(SDL_GetTicks()-u32Start)); 
 }
 
return 0;
}
Example #2
0
void lose() {
SColor STextColor;
	 if(lose_duration % 2) //Flicker
	   STextColor = RED;
	 else
		 STextColor = BLACK;	 
g_CWindow.draw_text("                      :::!~!!!!!:.",0,24,STextColor);
g_CWindow.draw_text("                  .xUHWH!! !!?M88WHX:.",0,24*2,STextColor);
g_CWindow.draw_text("                .X*#M@$!!  !X!M$$$$$$WWx:.",0,24*3,STextColor);
g_CWindow.draw_text("               :!!!!!!?H! :!$!$$$$$$$$$$8X:",0,24*4,STextColor);
g_CWindow.draw_text("              !!~  ~:~!! :~!$!#$$$$$$$$$$8X:",0,24*5,STextColor);
g_CWindow.draw_text("             :!~::!H!<   ~.U$X!?R$$$$$$$$MM!",0,24*6,STextColor);
g_CWindow.draw_text("             ~!~!!!!~~ .:XW$$$U!!?$$$$$$RMM!",0,24*7,STextColor);
g_CWindow.draw_text("               !:~~~ .:!M#T#$$$$WX??#MRRMMM!",0,24*8,STextColor);
g_CWindow.draw_text("               ~?WuxiW*`   `##$$$$8!!!!??!!!",0,24*9,STextColor);
g_CWindow.draw_text("             :X- M$$$$       `#T#$T~!8$WUXU~",0,24*10,STextColor);
g_CWindow.draw_text("            :%`  ~#$$$m:        ~!~ ?$$$$$$",0,24*11,STextColor);
g_CWindow.draw_text("          :!`.-   ~T$$$$8xx.  .xWW- ~####*#",0,24*12,STextColor);
g_CWindow.draw_text(".....   -~~:<` !    ~?T#$$@@W@*?$$      /`",0,24*13,STextColor);
g_CWindow.draw_text("W$@@M!!! .!~~ !!     .:XUW$W!~ `#~:    :",0,24*14,STextColor);
g_CWindow.draw_text("##~~`.:x%`!!  !H:   !WM$$$$Ti.: .!WUn+!`",0,24*15,STextColor);
g_CWindow.draw_text(":::~:!!`:X~ .: ?H.!u #$$$B$$$!W:U!T$$M~",0,24*16,STextColor);
g_CWindow.draw_text(".~~   :X@!.-~   ?@WTWo(#*$$$W$TH$! `",0,24*17,STextColor);
g_CWindow.draw_text(".~!X$?!-~    : ?$$$B$Wu(#**$RM!",0,24*18,STextColor);
g_CWindow.draw_text("$R@i.~~ !     :   ~$$$$$B$$en:``        YOU HAVE DIED",0,24*19,STextColor);
 lose_duration--;
 if(lose_duration < 0) {
   g_CWindow.draw_text("Would you like to play again?",0,24*2,WHITE);
   g_CWindow.draw_text("         Y/N?",0,24*3,WHITE);
   }
}