Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: Frogger/Frogger.cpp
- Revision:
- 48:8ccfc74b60a5
- Parent:
- 47:29c4796a49e5
- Child:
- 49:6cad8b6ec5f2
--- a/Frogger/Frogger.cpp Sat May 23 03:53:33 2020 +0000 +++ b/Frogger/Frogger.cpp Sat May 23 21:47:19 2020 +0000 @@ -20,6 +20,10 @@ lcd_h = h; // height state_frog = 0 ; + water_level = 48- 4*6; // row 7 and up is the water level + frogDie = false; + frogOnLog = false; + // grid values grid = 4; // size of game grid system grid_width = 22; // size of screen width in grid units @@ -89,16 +93,26 @@ //keep reading and processing user input while(1) { graphics.clear(); // clear the lcd screen - - runCurrentLevel(); // add velocity to level vehicles and logs + process_input(); // user controls the frog object graphics.drawSafetyLanes(); - graphics.showFrog(frog->x, frog->y, frog->width, frog->height, state_frog); // display current position of frog - process_input(); // user controls the frog object + if(frog->y >= water_level) + { + frogDie = false; + runCurrentLevel(); // add velocity to level vehicles and logs + + } else { + frogDie = true; + runCurrentLevel(); // add velocity to level vehicles and logs + + if(!frogOnLog){ + graphics.print(); + } + } - checkFrogOnWater(); // check if the frog is in the water level - + graphics.showFrog(frog->x, frog->y, frog->width, frog->height, state_frog); // display current position of frog + graphics.refresh(); // refresh the lcd screen wait_ms(85); // fpms @@ -116,10 +130,12 @@ state_frog = 0; moveFrog(0,-1); frogOnLog = false; + } else if(gamepad.B_pressed()){ state_frog = 3; moveFrog(0,1); frogOnLog = false; + } else if(gamepad.Y_pressed()){ state_frog = 2; moveFrog(-1,0); @@ -169,14 +185,14 @@ { moveVehiclesLevelOne(); // increment the x pos and display moveLogsLevelOne(); - checkFrogOnWater(); // check if the frog needs to jump on log/turtles + //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 + //checkFrogOnWater(); // check if it is above a certain height } /* ENGINE CALLS */ @@ -214,9 +230,11 @@ void Frogger::checkFrogOnWater() { - if(frog->y < 84 - 4*6) // if the frog is past the safety lane + if(frog->y < water_level) // if the frog is past the safety lane { - frogWater = true; // frog will die if not on turtle/log + frogDie = true; // frog will die if not on turtle/log + } else { + frogDie = false; } } @@ -225,7 +243,7 @@ for(int i = 0; i < array_size; i++) { moveIndividualObject(&row[i], c); - checkCollison(row[i]); // check if the frog has crashed/on log + checkCollison(row[i]); // check if the frog has crashed/on log } } @@ -244,7 +262,8 @@ } checkOutOfBounds(vehicle); - checkFrogOutOfBounds(); + checkFrogOutOfBounds(); + graphics.showObj(vehicle); // display to screen } /* ENGINE RUN */ @@ -292,35 +311,49 @@ (frog->right_side <= object.rectangle.left_side) || (frog->down <= object.rectangle.up) || (frog->left_side >= object.rectangle.right_side))) { - checkFrogAction(object); - graphics.print(); + moveFrogWithLog(object); + checkFrogAction(object); // check to do what do with frog based on height + } +} +void Frogger::checkFrogReachedRiver() +{ + if(frog->y < water_level) { + frogDie = true; // frog can die if it touches water + } else { + frogDie = false; } } void Frogger::checkFrogAction(Object log) { - if(frog->y < 48-4*6) { - //frogOnLog = true; - //moveFrogWithLog(log); - graphics.printTest(); + if(frog->y < water_level) { // frog is in water zone + frogOnLog = true; // moving same speed as log + //frogDie = false; } else { // frog is on the road - //frog->reset(); // crashed with car so reset + state_frog = 0; // facing upward + + frog->reset(); // crashed with car so reset + + frogOnLog = false; + frogDie = false; } } -void Frogger::moveFrogWithLog(Object *log) +void Frogger::moveFrogWithLog(Object log) { - switch (log->object.dir) - { - case 1: - frog->x += log->speed; - break; - - case 2: - frog->x -= log->speed; - break; + if(log.seperation != 0){ + switch (log.object.dir) + { + case 1: + frog->x += log.speed; + break; + + case 2: + frog->x = frog->x - log.speed; + break; + } } } @@ -514,68 +547,3 @@ return (rand() % 4) + 1; } -void Frogger::createMultipleSafetyLane() -{ - -} - -void Frogger::createSafetyObject() -{ - -} - -void Frogger::drawSafety() -{ - //graphics.drawSafetyLanes(safety_lane); -} - - -void Frogger::createMultipleRoadLane() -{ - -} - -// every level is going to have the same amount of blocks -void Frogger::createRoadLane() -{ - -} - -void Frogger::drawRoadObjects() -{ - //graphics.getRoadObjects(roads); -} - -void Frogger::createMultipleLanesWater() -{ - - -} - -void Frogger::createWaterLane(){ - -} - -// moves the water based on the velocity -void Frogger::moveWater() -{ - - //loopWater(water_lanes); -} - - -void Frogger::loopWater() -{ - -} - -void Frogger::drawWater() -{ - // graphics.drawWater(water); -} - -void Frogger::drawEndPost() -{ - //graphics.drawGoal(84/2)-grid/2, 48-grid*11); -} -