ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

GameEngine/GameEngine.cpp

Committer:
RehamFaqehi
Date:
2018-04-24
Revision:
7:06c86ec1f19d
Parent:
6:7b733b2a6cf6
Child:
8:13cef7cb872e

File content as of revision 7:06c86ec1f19d:

#include "GameEngine.h"

GameEngine::GameEngine()
{

}

GameEngine::~GameEngine()
{

}

void GameEngine::init()
{
    _rocket.init();
    _asteroid.init(2);
}

void GameEngine::read_input(Gamepad &pad)
{
    _d = pad.get_direction();
    _mag = pad.get_mag();
}

void GameEngine::draw(N5110 &lcd)
{
    // draw the game elements in the LCD
    _rocket.draw(lcd);
    _asteroid.draw(lcd);
    //print_scores(lcd);
    print_scores1(lcd);
  
}

void GameEngine::update(Gamepad &pad, N5110 &lcd)
{
    
    check_goal(pad);
    _rocket.update(_d,_mag, lcd);
    _asteroid.update();
}


void GameEngine::check_goal(Gamepad &pad)
{
    Vector2D _asteroid_pos = _asteroid.get_pos() ;

    Vector2D _rocket_pos = _rocket.get_pos();

    if (_rocket_pos.x+11 >=_asteroid_pos.x && _rocket_pos.x+9 <_asteroid_pos.x ) {//size //sprint width //float/////////////speed
        if(  _asteroid_pos.y >= _rocket_pos.y && _asteroid_pos.y <= _rocket_pos.y+7 || _asteroid_pos.y+7 >= _rocket_pos.y && _asteroid_pos.y+7 <= _rocket_pos.y+7 ) {
            _rocket.add_score();
            pad.tone(1500.0,0.5);
            pad.leds_on();
            wait(0.5);
            pad.leds_off();
        }
    }
}
 //////////////////////////////////////////////////////////////////   
void GameEngine::print_scores(N5110 &lcd) //this function is not used now 
{
    // get the number of hits
    int _rocket_score = _rocket.get_score();

    // print to LCD i
    char buffer1[11];
    sprintf(buffer1,"hits:%2d",_rocket_score);
    lcd.printString(buffer1,WIDTH/2 - 20, 1);    
}

void GameEngine::print_scores1(N5110 &lcd)
{
    // get scores from Rocket
    int _rocket_score = _rocket.get_score();
    // get_score();
    if (_rocket_score ==1) {
        _rocket.drawTwoHearts(lcd);
    } else if (_rocket_score==0) {
        _rocket.drawFullHearts(lcd);
    } else if (_rocket_score == 2) {
        _rocket.drawOneHeart(lcd);
    } else {
        _rocket.drawOneHeart(lcd);
    }
}