Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

BlockheadEngine/BlockheadEngine.cpp

Committer:
adambakerwa
Date:
2019-05-09
Revision:
44:03059810630d
Parent:
42:0dad7c359fa5

File content as of revision 44:03059810630d:

#include "mbed.h"
#include "Gamepad.h"
#include "N5110.h"
#include "BlockheadEngine.h"

//nothing needed doing in constructor or deconstructor 
BlockheadEngine::BlockheadEngine()
{

}

BlockheadEngine::~BlockheadEngine()
{

}


//intialise all variables for new game
void BlockheadEngine::init()                                        
{
    _blockhead.init();                                              //intialise variables in blockhead class
    _pos = _lev.init(_pos);                                         //intialise variables in level class and _pos struct
    

}


//intialise all variables for continue game 
void BlockheadEngine::continue_init()                                
{
    _blockhead.continue_init();                                     //level not intialised and x/y cordinate of blockhead differs dpending on what level you are on
    _pos = _lev.init(_pos);                                         //initialise variables in level class and _pos struct
    

}


//runs the game 'blockhead'
int BlockheadEngine::playgame(N5110 &lcd, Gamepad &pad)             
{
    lcd.clear();                                                    //clear lcd first
    
    _level = _blockhead.next_level();                               //returns what level blockhead is on
    _pos = _lev.what_level(lcd, _level);                             //displays that level on lcd, as well as passes cordinates of moving platforms and spikes to _pos structs
    _blockhead.blockhead(_pos, lcd, pad);                           //controlls blcokhead depending on position in game,
    _gameover = _blockhead.gameover_flag(pad);                      //_gameover = 1 once blockhead dies
    
    lcd.refresh();                                                  //updates screen

    return _gameover;                                               //returns _gameover
}


//returns highscore (the highest level reached by user)
int BlockheadEngine::highscore()
{   
    if (_level >= _highscore) {                                     //if level reached is higher than current highscore
        _highscore = _level;                                        //then _highscore = _level
    }

    return _highscore;                                              //returns _highscore
}