Josh Davy / Mbed 2 deprecated Flip

Dependencies:   mbed el17jd

Game/Game.cpp

Committer:
joshdavy
Date:
2019-04-24
Revision:
9:96969b1c6bde
Parent:
8:21b6d4dbce44
Child:
10:58cf89dd878c

File content as of revision 9:96969b1c6bde:

#include "Game.h"

// Objects
Game::Game()
{




}

void Game::load_level(int level_number)
{
    LevelDefinition level_def;
    switch(level_number) {
        case 1 :
            level_def = level_1;
            break;
        case 2:
            level_def = level_2;
            break;
        case 3:
            level_def = level_3;
            break;
        case 4:
            level_def = level_4;
            break;
        case 5:
            level_def = level_5;
            break;
        case 6:
            level_def = level_6;
            break;
        case 7:
            level_def = level_7;
            break;
        case 8:
            _game_won = true;
            return;


    }
    
    _player.init(6,6,level_def.initial_pos);
    _level.init(level_def.blocks,
                level_def.number_of_blocks,
                level_def.goal);


    for (int i = 0; i < level_def.number_of_moving_blocks; i++) {
        MovingBlockDefinition x = level_def.moving_blocks[i];
        _level.declare_moving_block(x.index,x.extending,x.distance);
    }

}

void Game::init()
{

    load_level(1);
    _current_level = 1;
    _game_won = false;
}

Game::~Game()
{

}



void Game::update(Gamepad &pad)
{
    _player.update(pad, _level.get_blocks(),_level.get_number_of_blocks());
    _level.update_moving_blocks();
    if (_player.check_goal_reached(_level.get_goal())) {
        _current_level += 1;
        load_level(_current_level);
    }


}


void Game::draw(N5110 &lcd)
{

    lcd.clear();
    _level.render(lcd);
    _player.render(lcd);
    lcd.refresh();

}


bool Game::game_won()
{
    return _game_won;
}