ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Revision:
51:4c1f49729d88
Parent:
50:9ffeb4a10c0a
Child:
52:1145e99264ea
--- a/Frogger/Frogger.cpp	Mon May 25 02:18:57 2020 +0000
+++ b/Frogger/Frogger.cpp	Mon May 25 16:58:50 2020 +0000
@@ -29,6 +29,7 @@
     lcd_h = h; // height
     state_frog = 0;
     end_post = false;
+    turtle_state = 0;
     
     water_level = 48- 4*6; // row 7 and up is the water level
     frogDie = false;
@@ -67,6 +68,15 @@
     setupLogsLevelOne();
 }
 
+void Frogger::setupBonusRound()
+{
+    // setup vehicles
+    setupLevelTwoRows();
+    setupLevelTwoXPos();
+    setupLevelTwoSprites();  
+    setupLevelTwoDir();
+}
+
 // called by frogger engine
 void Frogger::setupLevelTwo()
 {
@@ -128,18 +138,17 @@
 {
     graphics.clear();
     graphics.newLevel1();
-    wait_ms(1000);   
-    graphics.refresh(); // refresh the lcd screen
-        
-    graphics.refresh(); // refresh the lcd screen
-    graphics.clear();
-    graphics.newLevel2();
-    wait_ms(1000); 
+    wait_ms(1000);
     graphics.refresh(); // refresh the lcd screen
 
     graphics.refresh(); // refresh the lcd screen
     graphics.clear();
-    graphics.newLevelIntro();
+    graphics.newLevel2();
+    wait_ms(1000);
+    graphics.refresh(); // refresh the lcd screen
+
+    graphics.refresh(); // refresh the lcd screen
+    graphics.clear();
     wait_ms(1000);
     graphics.refresh(); // refresh the lcd screen
 }
@@ -161,24 +170,14 @@
 
 void Frogger::checkProgression()
 { 
-//frog->x > 80 && frog->x < 90 && 
- if((frog->y == 48 - 4*11 || frog->y == 48 - 4*10)){
-        exit(1);
+    if((frog->y == 48 - 4*11 || frog->y == 48 - 4*10)){
+        displayLevelIntro();
+        frog->reset();
+        setupLevelTwo();
+        current_level++;
     }
-   
 }
 
-/*
-void Frogger::goalReached()
-{
-  if(!(frog->up >= goal_post->rectangle.bottom ||
-    (frog->right_side <= goal_post->rectangle.left_side)  ||
-    (frog->down <= goal_post->rectangle.up) ||
-    (frog->left_side >= goal_post->rectangle.right_side))) {
-        next_goal = true;
-    } 
-}*/
-
 void Frogger::actOnFrogPos()
 {
     if(frog->y >= water_level)
@@ -190,7 +189,7 @@
         frogDie = true;
         runCurrentLevel(); // add velocity to level vehicles and logs
             
-        if((!frogOnLog) && frog->y != (48 - 4*10)){
+        if((!frogOnLog) && (frog->y != 48 - 4*11 && frog->y != 48 - 4*10) && frog->x != 42){
             frog->reset();
         }
     }
@@ -226,7 +225,6 @@
     {
         case 0:
             play_game = true;
-            
             introScreen = false;
             tutorial = false;
             settings = false;
@@ -293,16 +291,7 @@
     graphics.drawEndPost(goal_post_xpos);
 }
 
-/*
-void Frogger::setUpGoalPost()
-{
-    int y = (48 - 4*11);
-    goal_post->rectangle.left_side = goal_post_xpos;
-    goal_post->rectangle.right_side = 12 + goal_post_xpos;
-    goal_post->rectangle.up = 8;
-    goal_post->rectangle.bottom = 8 + y; 
-}
-*/
+
 int Frogger::randEndPost()
 {
     return (rand() % 80) + 12;      
@@ -376,14 +365,12 @@
 {
     moveVehiclesLevelOne(); // increment the x pos and display
     moveLogsLevelOne();  
-    //checkFrogOnWater(); // check if the frog needs to jump on log/turtles  
 }
 
 void Frogger::runLevelTwo()
 {
     moveVehiclesLevelTwo();
     moveLogsLevelTwo();
-    //checkFrogOnWater(); // check if it is above a certain height
 }
 /* ENGINE CALLS */
 
@@ -657,8 +644,8 @@
 
 void Frogger::setLogLevelTwoSprite()
 {
-    setSpriteObjects(level_row_one, 'G', 2);
-    setSpriteObjects(level_row_two, 'M', 2);
+    setSpriteObjects(level_row_one, 'M', 2);
+    setSpriteObjects(level_row_two, 'T', 2);
     setSpriteObjects(level_row_three, 'G', 3);
 }