JianWei Lee
/
project_game
Meteor defense project
GameEngine/GameEngine.cpp@11:1c48fe71045c, 2017-03-29 (annotated)
- Committer:
- jasper0712
- Date:
- Wed Mar 29 13:52:21 2017 +0000
- Revision:
- 11:1c48fe71045c
- Parent:
- 10:926b1f89c4f1
- Child:
- 13:38cbce17d7d7
developed bomb. completed the spawnDamageByBomb. The Mbed crashed when the array scan for x = -ve number. fixing it later or tomorrow
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jasper0712 | 4:4145abd09075 | 1 | #include "GameEngine.h" |
jasper0712 | 4:4145abd09075 | 2 | |
jasper0712 | 4:4145abd09075 | 3 | GameEngine::GameEngine() |
jasper0712 | 4:4145abd09075 | 4 | { |
jasper0712 | 4:4145abd09075 | 5 | |
jasper0712 | 4:4145abd09075 | 6 | } |
jasper0712 | 4:4145abd09075 | 7 | |
jasper0712 | 4:4145abd09075 | 8 | GameEngine::~GameEngine() |
jasper0712 | 4:4145abd09075 | 9 | { |
jasper0712 | 4:4145abd09075 | 10 | |
jasper0712 | 4:4145abd09075 | 11 | } |
jasper0712 | 4:4145abd09075 | 12 | |
jasper0712 | 4:4145abd09075 | 13 | void GameEngine::drawSpawn(N5110 &lcd){ |
jasper0712 | 9:4c4d787c7a8b | 14 | //spawning every 2 second, moving every 1 seconds at 15 fps & drawit=15. |
jasper0712 | 9:4c4d787c7a8b | 15 | //It changes depending on the game FPS. |
jasper0712 | 4:4145abd09075 | 16 | if (drawit ==0) { |
jasper0712 | 9:4c4d787c7a8b | 17 | drawit =20; |
jasper0712 | 6:a554424e4517 | 18 | spa.randomizeSpawn(Array1, Array2); |
jasper0712 | 6:a554424e4517 | 19 | spa.moveSpawn(Array1, Array2); |
jasper0712 | 6:a554424e4517 | 20 | spa.updateSpawn(Array1,Array2,lcd); |
jasper0712 | 10:926b1f89c4f1 | 21 | checkGameRule(lcd); |
jasper0712 | 4:4145abd09075 | 22 | } else { |
jasper0712 | 4:4145abd09075 | 23 | drawit -=0.5; |
jasper0712 | 6:a554424e4517 | 24 | spa.updateSpawn(Array1,Array2,lcd); |
jasper0712 | 4:4145abd09075 | 25 | } |
jasper0712 | 4:4145abd09075 | 26 | } |
jasper0712 | 5:c74bbdda06f4 | 27 | void GameEngine::drawLaserPlayer(Gamepad &pad, N5110 &lcd) { |
jasper0712 | 9:4c4d787c7a8b | 28 | weap.laserDamage(); |
jasper0712 | 5:c74bbdda06f4 | 29 | weap.drawWeapon(pad, lcd); |
jasper0712 | 9:4c4d787c7a8b | 30 | //draw a line for the laser when button is pressed |
jasper0712 | 10:926b1f89c4f1 | 31 | if (pad.buttonhold_A == 1) { |
jasper0712 | 7:3be4369131c6 | 32 | //printf("hi, button is working \n"); |
jasper0712 | 5:c74bbdda06f4 | 33 | weap.weaponMath(pad); |
jasper0712 | 9:4c4d787c7a8b | 34 | weap.drawLaser(Array1, lcd); |
jasper0712 | 5:c74bbdda06f4 | 35 | } |
jasper0712 | 5:c74bbdda06f4 | 36 | } |
jasper0712 | 9:4c4d787c7a8b | 37 | |
jasper0712 | 10:926b1f89c4f1 | 38 | void GameEngine::checkGameRule(N5110 &lcd) { |
jasper0712 | 9:4c4d787c7a8b | 39 | //the only way to lose is when the spawn reaches y = 46. |
jasper0712 | 10:926b1f89c4f1 | 40 | for ( int x = 0; x < 84; x ++) { |
jasper0712 | 10:926b1f89c4f1 | 41 | if (Array1[x][46] > 0) { |
jasper0712 | 10:926b1f89c4f1 | 42 | while (1) { |
jasper0712 | 10:926b1f89c4f1 | 43 | lcd.clear(); |
jasper0712 | 10:926b1f89c4f1 | 44 | lcd.printString("Game Over",10,3); |
jasper0712 | 10:926b1f89c4f1 | 45 | lcd.refresh(); |
jasper0712 | 10:926b1f89c4f1 | 46 | wait(1.0); |
jasper0712 | 10:926b1f89c4f1 | 47 | } |
jasper0712 | 10:926b1f89c4f1 | 48 | } |
jasper0712 | 10:926b1f89c4f1 | 49 | } |
jasper0712 | 5:c74bbdda06f4 | 50 | } |
jasper0712 | 11:1c48fe71045c | 51 | void GameEngine::bomb(Gamepad &pad, N5110 &lcd) { //cooldown not yet implemented. |
jasper0712 | 11:1c48fe71045c | 52 | |
jasper0712 | 11:1c48fe71045c | 53 | //press L button to toggle flag |
jasper0712 | 10:926b1f89c4f1 | 54 | if (pad.check_event(Gamepad::L_PRESSED)) { |
jasper0712 | 11:1c48fe71045c | 55 | if (bombTarget == 1) { |
jasper0712 | 11:1c48fe71045c | 56 | bombTarget = 0; |
jasper0712 | 11:1c48fe71045c | 57 | } else if(bombTarget == 0) { |
jasper0712 | 11:1c48fe71045c | 58 | bombTarget = 1; |
jasper0712 | 11:1c48fe71045c | 59 | } |
jasper0712 | 11:1c48fe71045c | 60 | } |
jasper0712 | 11:1c48fe71045c | 61 | if (bombTarget == 1) { |
jasper0712 | 11:1c48fe71045c | 62 | weap.drawBombTarget(Array1, pad, lcd); |
jasper0712 | 10:926b1f89c4f1 | 63 | } |
jasper0712 | 10:926b1f89c4f1 | 64 | } |