JianWei Lee
/
project_game
Meteor defense project
Diff: GameEngine/GameEngine.cpp
- Revision:
- 34:6ac9541d4c31
- Parent:
- 32:580d74825810
- Child:
- 36:2608622e5018
--- a/GameEngine/GameEngine.cpp Fri Apr 21 14:12:28 2017 +0000 +++ b/GameEngine/GameEngine.cpp Sun Apr 23 21:09:32 2017 +0000 @@ -23,6 +23,7 @@ } void GameEngine::init(int w) { + NumberOfLife = 3; //3 life on every wave _d1.droneInit(20, 46, 0, 42); //drone1 is taking left side pixel 0 to 42. _d2.droneInit(62, 46, 42, 84); //drone2 is taking right side pixel 42 to 83; weap.init(); @@ -42,7 +43,9 @@ _gui.upgrading = 1; _gui.preventDoubleClick(pad); while (_gui.upgrading == 1) { - _gui.main_Upgrades(pad, lcd); //go to the main upgrade page + Variables copyVar = weap.getVar(); //this shit is not working. + printf("copyvar %d \n",copyVar.laserDamage); + _gui.upgrades(copyVar, pad, lcd); //go to the main upgrade page if (_gui.saveTheData == 1) { Data _upgrades = _gui.savedata(); //saving data //_gui.testingtest(_upgrades); //code used to test the struct @@ -86,25 +89,53 @@ } } void GameEngine::checkGameRule(Gamepad &pad, N5110 &lcd) { - //the only way to lose is when the spawn reaches y = 46. + //the only way to lose a life is when a spawn reaches y = 46. + numberOfLife_leds(pad); for ( int x = 0; x < 84; x ++) { - if (Array[x][46] > 0) { - while (1) { - lcd.clear(); - lcd.printString("Game Over",10,3); - lcd.refresh(); - pad.leds_on(); - wait(0.1); - pad.leds_off(); - wait(0.1); + if (Array[x][46] > 0) { //if anything reaches line y=46 + NumberOfLife --; + printf("opps you lost a life. NumberOfLife = %d \n",NumberOfLife); + if (NumberOfLife == 0) { + while (1) { + lcd.clear(); + lcd.printString("Game Over",10,3); + lcd.refresh(); + pad.leds_on(); + wait(0.1); + pad.leds_off(); + wait(0.1); + } } } } } +void GameEngine::numberOfLife_leds(Gamepad &pad) { + //light up LEDs depends on number of lifes left. + if (NumberOfLife == 3) { + pad.leds_on(); + } + if (NumberOfLife == 2) { + pad.led(1, 1.0); + pad.led(2, 1.0); + pad.led(3, 0.0); + pad.led(4, 0.0); + pad.led(5, 1.0); + pad.led(6, 1.0); + } + if (NumberOfLife == 1) { + pad.led(1, 1.0); + pad.led(2, 0.0); + pad.led(3, 0.0); + pad.led(4, 0.0); + pad.led(5, 0.0); + pad.led(6, 1.0); + } +} void GameEngine::bombAndShield(Gamepad &pad, N5110 &lcd) { + weap.init(); weap.bombCooldown(Array2, pad, lcd); if (pad.check_event(Gamepad::X_PRESSED)) { - //to prevent from detonating the bomb at instant when button X is ay1identally pressed + //to prevent from detonating the bomb at instant when button X is accidentally pressed } if (pad.buttonhold_B == 1) { //if B pressed, generate shield. Shield doesnt have to be fully charged to be activated if (weap._shield > 0) { //shield will only activate if the shield has not depleted.