ELEC2645 (2018/19) / Mbed 2 deprecated el17set_

Dependencies:   mbed

Game/Game.cpp

Committer:
S_Tingle
Date:
2019-05-08
Revision:
21:7d4827af00d6
Parent:
20:ad13b0fdd8ff
Child:
22:8e38efeae0c9

File content as of revision 21:7d4827af00d6:

#include "Game.h"

Game::Game(){
    
}

Game::~Game(){

}

void Game::init(){
    smiley.init(x,y);
    _lives = 10;
    coin = 0;
    coin1.init(41,42);
    coin2.init(41,23);
    coin3.init(78,42);
    coin4.init(22,34);
    coin5.init(22,12);
    coin6.init(59,12);
    coin7.init(59,34);
    coin8.init(78,14);
    coin9.init(78,4);
    coin10.init(41,4);
    coin11.init(4,4);
    coin12.init(78,23);
    coin13.init(13,14);
    enemyA.init(28,18);
    enemy1.init(58,31);
    enemyB.init(67,20);
    enemy2.init(67,12);
    
}

void Game::dirmag(Gamepad &pad){
    dir = pad.get_direction();
}

void Game::drawSprite(N5110 &lcd){
    maze.drawSprite(lcd);
    coin1.drawSprite(lcd);
    coin2.drawSprite(lcd);
    coin3.drawSprite(lcd);
    coin4.drawSprite(lcd);
    coin5.drawSprite(lcd);
    coin6.drawSprite(lcd);
    coin7.drawSprite(lcd);
    coin8.drawSprite(lcd);
    coin9.drawSprite(lcd);
    coin10.drawSprite(lcd);
    coin11.drawSprite(lcd);
    coin12.drawSprite(lcd);
    coin13.drawSprite(lcd);
    enemyA.drawSpriteA(lcd);
    enemy1.drawSprite1(lcd);
    enemyB.drawSpriteB(lcd);
    enemy2.drawSprite2(lcd);
    smiley.drawSprite(lcd);
}

void Game::movement(N5110 &lcd, Gamepad &pad){
    smiley.movement(dir,lcd);
    enemyA.movementA(lcd);
    enemy1.movement1(lcd);
    enemyB.movementB(lcd);
    enemy2.movement2(lcd);
}

void Game::collect(N5110 &lcd, Gamepad &pad){
    int x = smiley.get_x_char();
    int y = smiley.get_y_char();
    coin1.spawn(x, y, lcd, pad);
    coin2.spawn(x, y, lcd, pad);
    coin3.spawn(x, y, lcd, pad);
    coin4.spawn(x, y, lcd, pad);
    coin5.spawn(x, y, lcd, pad);   
    coin6.spawn(x, y, lcd, pad);
    coin7.spawn(x, y, lcd, pad);
    coin8.spawn(x, y, lcd, pad);
    coin9.spawn(x, y, lcd, pad);
    coin10.spawn(x, y, lcd, pad);
    coin11.spawn(x, y, lcd, pad);
    coin12.spawn(x, y, lcd, pad);   
    coin13.spawn(x, y, lcd, pad);
}

void Game::win(N5110 &lcd){
    if (coin == 1) {
        lcd.clear();
        lcd.printString("YOU",30,2);
        lcd.printString("WIN",30,3);
        lcd.printString(":)",30,3);
        lcd.refresh();
        wait(2);
    }
}

void Game::damage(N5110 &lcd, Gamepad &pad){
    int x = smiley.get_x_char();
    int y = smiley.get_y_char();
    if (enemyA.collidePlayer(x, y, pad) == true ||enemy1.collidePlayer(x, y, pad) == true || enemy2.collidePlayer(x, y, pad) == true ){
        _lives--;
        wait(0.1);
    }
}

void Game::death(N5110 &lcd){
    if (_lives == 0) {
        lcd.clear();
        lcd.printString("PUT",30,1);
        lcd.printString("ON",30,2);
        lcd.printString("TIMEOUT",30,3);
        lcd.printString(":(",30,4);
        lcd.refresh();
        wait(2);
    }
}

void Game::UI(Gamepad &pad, N5110 &lcd){
    menu.main(lcd,pad);   
}

int Game::get_lives() {
    return _lives;
}

int Game::get_coins() {
    return coin;
}

void Game::display_health(N5110 &lcd) {
    char buffer[14];
    sprintf(buffer,"%d",_lives);
    lcd.printString(buffer,0,5);
}