Meteor defense project

Dependencies:   N5110 mbed

GameEngine/GameEngine.cpp

Committer:
jasper0712
Date:
2017-03-28
Revision:
10:926b1f89c4f1
Parent:
9:4c4d787c7a8b
Child:
11:1c48fe71045c

File content as of revision 10:926b1f89c4f1:

#include "GameEngine.h"

GameEngine::GameEngine()
{

}

GameEngine::~GameEngine()
{

}

void GameEngine::drawSpawn(N5110 &lcd){
    //spawning every 2 second, moving every 1 seconds at 15 fps & drawit=15. 
    //It changes depending on the game FPS.
    if (drawit ==0) {
        drawit =20;
        spa.randomizeSpawn(Array1, Array2);
        spa.moveSpawn(Array1, Array2);
        spa.updateSpawn(Array1,Array2,lcd);
        checkGameRule(lcd);
    } else {
        drawit -=0.5;
        spa.updateSpawn(Array1,Array2,lcd);        
    }
}
void GameEngine::drawLaserPlayer(Gamepad &pad, N5110 &lcd) {
    weap.laserDamage();
    weap.drawWeapon(pad, 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(Array1, lcd);
    }
}

void GameEngine::checkGameRule(N5110 &lcd) {
    //the only way to lose is when the spawn reaches y = 46.
    for ( int x = 0; x < 84; x ++) {
        if (Array1[x][46] > 0) {
            while (1) {
                lcd.clear();
                lcd.printString("Game Over",10,3);
                lcd.refresh();
                wait(1.0);
            }
        }
    }       
}
void GameEngine::bomb(Gamepad &pad, N5110 &lcd) {
    if (pad.check_event(Gamepad::L_PRESSED)) {
        weap.drawBomb(pad, lcd);
    }
}