Library containing the Game Engine

GameEngine.cpp

Committer:
ll14c4p
Date:
2017-05-02
Revision:
7:cf6304ef44fd
Parent:
6:c710fbc0f48e
Child:
8:bd718162a87c

File content as of revision 7:cf6304ef44fd:

#include "GameEngine.h"

GameEngine::GameEngine()
{

}

GameEngine::~GameEngine()
{

}

void GameEngine::init()
{
    
}



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

void GameEngine::draw(N5110 &lcd)
{
    // draw the elements in the LCD buffer
    // player
    _p.draw(lcd);
    _proj.draw(lcd);
    _t.draw(lcd);
}


void GameEngine::update(Gamepad &pad)
{
    _p.update(_d,_mag);
    _proj.update(); 
    _t.update();
    CheckProjTargetCollision(pad);
}

void GameEngine::get_pos()
{
    Vector2D player_pos = _p.get_pos();
    //printf("player pos = %f %f \n", player_pos.x, player_pos.y); //top left of player sprite
    // 81.000000 0.000000 top right
    // 0.000000 0.000000 is top left
    // 81.000000 45.000000 bottom right
    Vector2D proj_pos = _proj.get_pos();
    //printf("proj pos = %f %f \n", proj_pos.x, proj_pos.y);
    
    playerx = player_pos.x;
    playery = player_pos.y;
    //printf("playerxy in GAME = %d %d \n", playerx, playery);
    _proj.init(playerx,playery);
    
    }
    
    
    
void GameEngine::CheckProjTargetCollision(Gamepad &pad)
{
    Vector2D proj_pos = _proj.get_pos();
    Vector2D t_pos = _t.get_pos();
    Vector2D player_pos = _p.get_pos();
   // printf("proj %f %f \n", proj_pos.x, proj_pos.y);
    //printf("targ %f %f \n", t_pos.x, t_pos.y);
    
    if (
        ((proj_pos.y == t_pos.y) ||
        (proj_pos.y == t_pos.y + 1) ||
        (proj_pos.y == t_pos.y + 2) ||
        (proj_pos.y == t_pos.y + 3) ||
        (proj_pos.y == t_pos.y + 4)) && 
        ((proj_pos.x == t_pos.x) ||
        (proj_pos.x == t_pos.x + 1) ||
        (proj_pos.x == t_pos.x + 2) ||
        (proj_pos.x == t_pos.x + 3) ||
        (proj_pos.x == t_pos.x + 4))
    ) {
        
        printf("yeaaaaaaaaaaaaah boiiiiiiiiiiii \n");
        proj_pos.x = player_pos.x +1;
        proj_pos.y = player_pos.y +1;
        t_pos.x = rand() % 79;
        t_pos.y = 0;
        // audio feedback
        //pad.tone(1000.0,0.1);
    }

    _proj.set_pos(proj_pos);
    _t.set_pos(t_pos);
    
       
    }