Fixe dpause, respawn
authorlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Tue, 5 Dec 2006 19:59:27 +0000 (19:59 +0000)
committerlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Tue, 5 Dec 2006 19:59:27 +0000 (19:59 +0000)
git-svn-id: svn+ssh://svn/var/repos/curfender@567 bc5cbbab-a4ec-0310-bb52-ff3d296db539

CHANGELOG
main.cpp

index e7f93c8..8840304 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+Fixed pause, respawn
 Landers shoot diagonally.
 Landers shoot hozizontally, move.  Can kill you and a carried pod.
 Added landers, shootable, collidable, and game over logic.
index 6051535..1671491 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -11,6 +11,7 @@ int level;
 
 int drawlocation = 0;
 int pod_in = 0;
+int pause = 0;
 
 struct game_object {
   int number; //object number
@@ -351,19 +352,37 @@ void draw_board(){
 
 int life_loss(int lives, int score){
   if(lives>=1){
-    cbreak();
-    mvprintw(10,20,"Boom.  Press any key to continue.\n");
-    getch();
+    pause = 0;
+    while(pause!=' '){
+      cbreak();
+      mvprintw(10,20,"Boom.  Press SPACE to continue.\n");
+      pause = getch();
+    };
     halfdelay(1);
   } else {
-    cbreak();
-    mvprintw(10,20,"GAME OVER. Score:%d  Press any key to exit.\n", score);
-    getch();
-    endwin();
-    exit(0);
+    pause = 0;
+    while(pause!=' '){
+      cbreak();
+      mvprintw(10,20,"GAME OVER. Score:%d  Press SPACE to exit.\n", score);
+      pause = getch();
+    };
+      endwin();
+      exit(0);
   };
 }
 
+game_object player_init(game_object player){
+  player.x = rand()%17;
+  player.y = rand()%600+20;
+  player.direction = 5;
+  player.face = 1;
+  player.speed = 0;
+  player.vspeed = 0;
+  player.vtime = 0;
+
+  return player;
+}
+
 int main(){
   
   //Check screen size 80x25 and exit if not big enough
@@ -538,7 +557,6 @@ int main(){
   cbreak();
   halfdelay(1);
   noecho();
-  //keypad(stdscr, TRUE);
 
   while(loopvar == 0){
     
@@ -633,10 +651,13 @@ int main(){
 
     //pause
     if(input==' '){
-      cbreak();
-      mvprintw(10,25,"Paused.  Press any key to continue.\n");
-      getch();
-      halfdelay(1);
+      pause = 0;
+      while(pause!=' '){
+       cbreak();
+       mvprintw(10,25,"Paused.  Press SPACE to continue.\n");
+       pause = getch();
+       halfdelay(1);
+      };
     };
 
     //check for / process pod pickup
@@ -725,6 +746,8 @@ int main(){
          //add to score
          score = score + 20;
          life_loss(lives, score);
+         player = player_init(player);
+         drawlocation = player.y-20;
          //kill any carried pods
          if(pod_in>0){
            for(int podloop = 0; podloop<8; podloop=podloop+2){ 
@@ -762,7 +785,7 @@ int main(){
                if(player.x==landers[landerloop].x){ landershot[landershotloop].direction = 6; };
                if(player.x>landers[landerloop].x){ landershot[landershotloop].direction = 3; };
              };
-             landershot[landershotloop].speed = landers[landerloop].speed + 2;
+             landershot[landershotloop].speed = landers[landerloop].speed;
              landershot[landershotloop].x = landers[landerloop].x;
              landershot[landershotloop].y = landers[landerloop].y + (landers[landerloop].speed * multiplier);
              landershot[landershotloop].vtime = 1;
@@ -782,6 +805,8 @@ int main(){
          landershot[landershotloop].vtime = 100;
          landershot[landershotloop] = age_bullet(landershot[landershotloop]);
          life_loss(lives, score);
+         player = player_init(player);
+         drawlocation = player.y-20;
          //kill any carried pods
          if(pod_in>0){
            for(int podloop = 0; podloop<8; podloop=podloop+2){ 
@@ -815,9 +840,12 @@ int main(){
       //Award lives, if any
       if(lives<4){lives++;};
       //Print goodies, getch
-      cbreak();
-      mvprintw(10,20,"Level %d Completed.  Press any key to continue.\n", level);
-      getch();
+      pause = 0;
+      while(pause!=' '){
+       cbreak();
+       mvprintw(10,20,"Level %d Completed.  Press SPACE to continue.\n", level);
+       pause = getch();
+      };
       halfdelay(1);
       //Advance level
       level++;