JianWei Lee
/
project_game
Meteor defense project
Diff: GameEngine/GameEngine.cpp
- Revision:
- 38:c66a69c1a6de
- Parent:
- 37:45da88e36d1d
- Child:
- 39:f92b93efbc72
--- a/GameEngine/GameEngine.cpp Mon Apr 24 11:11:39 2017 +0000 +++ b/GameEngine/GameEngine.cpp Mon Apr 24 23:30:54 2017 +0000 @@ -24,17 +24,18 @@ } void GameEngine::init(int w) { NumberOfLife = 3; //3 life on every wave + weap.init(); _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(); spa.init(w); //printf("init completed \n"); } void GameEngine::update(Gamepad &pad, N5110 &lcd) { + weap.init(); _d1.droneScan(Array2, charArray2, lcd); _d2.droneScan(Array2, charArray2, lcd); drawSpawn(lcd); - drawLaserPlayer(pad, lcd); + laser_and_bomb(pad, lcd); bombAndShield(pad, lcd); checkGameRule(pad, lcd); } @@ -45,14 +46,13 @@ while (_gui.upgrading == 1) { //printf("laserDamage = %i \n",weap._laserDamage); //go to the main upgrade page with all the values (from Weapon) as reference. - _gui.upgrades(weap._laserDamage, weap._bombDamage, weap._bombR, weap._bombCooldown, _d1._droneDamage, _d1._droneRange, weap._shieldCapacity, weap._shieldRegenRate, pad, lcd); + _gui.upgrades(weap._laserDamage, weap._bombDamage, weap._bombRange, weap._bombCooldown, weap._droneDamage, weap._droneRange, weap._shieldCapacity, weap._shieldRegenRate, weap._cannonDamage, weap._cannonCapacity, weap._cannonRegenRate, pad, lcd); //printf("_gui.saveTheData = %d",_gui.saveTheData); if (_gui.saveTheData == 1) { Data _upgrades = _gui.savedata(); //saving data //_gui.testingtest(_upgrades); //code used to test the struct weap.setVar(_upgrades.up, _upgrades.up1); weap.setVar(_upgrades.u1p, _upgrades.u1p1); - weap.testtest(); //printf("TESTING up = %d, up1 = %d, u1p = %d, u1p1 = %d \n",_upgrades.up,_upgrades.up1,_upgrades.u1p,_upgrades.u1p1); _gui.saveTheData = 0; _gui.upgrading = 0; //get out of while loop after done upgrading @@ -84,21 +84,25 @@ } spa.updateSpawn(Array, Array2, charArray, charArray2, lcd); } -void GameEngine::drawLaserPlayer(Gamepad &pad, N5110 &lcd) { +void GameEngine::laser_and_bomb(Gamepad &pad, N5110 &lcd) { weap.drawPlayer(pad, lcd); + weap.cannon_Cooldown(); + weap.cannon_Meter(lcd); //draw a line for the laser when button is pressed if (pad.buttonhold_A == 1) { //printf("hi, button is working \n"); weap.weaponMath(pad); - weap.drawLaser(Array2, charArray2, lcd); + weap.laser_Main(Array2, charArray2, lcd); //cannon can only be fired when the laser is switched on. - if ( pad.check_event(Gamepad::Y_PRESSED)) { //press button to set flag (fire the cannon) - fireInTheHole_flag = 1; + if ( weap._cannon > 320) { //when sufficient cost, check for button Y. + if ( pad.check_event(Gamepad::Y_PRESSED)) { //press button to set flag (fire the cannon) + fireInTheHole_flag = 1; + } } } if ( fireInTheHole_flag == 1) { - weap.cannon(lcd); + weap.cannon_main(lcd); } if ( weap.cannon_Firing == 0) { //clear flag when cannon is done fireInTheHole_flag = 0; @@ -148,7 +152,6 @@ } } 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 accidentally pressed