ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

GraphicEngine/GraphicEngine.cpp

Committer:
el19tb
Date:
2020-05-23
Revision:
48:8ccfc74b60a5
Parent:
47:29c4796a49e5
Child:
49:6cad8b6ec5f2

File content as of revision 48:8ccfc74b60a5:

#include "GraphicEngine.h"

//GraphicEngine::GraphicEngine(){}
GraphicEngine::GraphicEngine(){
   //this->frog = frogptr;

}

void GraphicEngine::init()
{
    lcd.init();
}

/* TO-DO: ADD CONTROLS FOR BACKLIGHT */
void GraphicEngine::contrast()
{
    lcd.setContrast(0.45);  
}

void GraphicEngine::clear()
{
    lcd.clear();
}

void GraphicEngine::refresh()
{
    lcd.refresh();
}

void GraphicEngine::backLightOn()
{
    lcd.backLightOn();
}

void GraphicEngine::showObj(Object *obj)
{
    if(obj->object.c == 'G' || obj->object.c == 'M' || obj->object.c == 'T') {
        displayLog(obj->object.x, obj->object.y, obj->object.c);
    } else {
        displayVehicle(obj->object.x, obj->object.y, obj->object.c);
    }
}

void GraphicEngine::displayVehicle(int x, int y, char c)
{
    switch(c)
    {
        case 'L': 
            lcd.drawSprite(x, y, 4, 12, (int *)left_racer);
            break;
        case 'R' : 
            lcd.drawSprite(x, y, 4, 12, (int *)right_racer);
            break;
        case 'B': 
            lcd.drawSprite(x, y, 4, 16, (int *)bus);
            break;
        case 'N': 
            lcd.drawSprite(x, y, 4, 10, (int *)right_normal);
            break;
        case 'X': 
            lcd.drawSprite(x, y, 4, 10, (int *)left_normal);
            break;
    } 
}

void GraphicEngine::displayLog(int x, int y, char c)
{
    switch(c)
    {
        case 'G':
            lcd.drawSprite(x, y, 4, 20, (int *)log_big);  
            break;

        case 'M':
            lcd.drawSprite(x, y, 4, 16, (int *)medium_log);  
            break;

        case 'T':
            lcd.drawSprite(x, y, 4, 12, (int *)turtles);  
            break;
    }
}

/* TO-DO: ADD SPRITES AND SPRITE STATE */
void GraphicEngine::showFrog(float x, int y, int width, int height, int state)
{
    switch(state)
    {
        case 0:
            lcd.drawSprite(x, y, 4, 6, (int *)frog_state_up);
            break;
        case 1: 
            lcd.drawSprite(x, y, 4, 6, (int *)frog_state_left);
            break;
        case 2: 
            lcd.drawSprite(x, y, 4, 6, (int *)frog_state_right);
            break;
        case 3: 
            lcd.drawSprite(x, y, 4, 6, (int *)frog_state_down);
            break;
    }
}

void GraphicEngine::drawGoal(int x, int row)
{
    //lcd.drawSprite(x, row, 8, 8, (int *)end_post);      
}  

void GraphicEngine::drawSafetyLanes()
{        
    lcd.drawRect(0, 48 - 4, 84, 4, FILL_TRANSPARENT); // row 0 -> bottom
    lcd.drawRect(0, 48 - 4*6, 84, 4, FILL_TRANSPARENT); // row 6 -> middle(ish)
}

void GraphicEngine::printTest()
{
    lcd.printString("SQUISHED", 1, 1);  
}

void GraphicEngine::print()
{
    lcd.printString("DROWNED",1,1);  
}

void GraphicEngine::printLoser()
{
    lcd.printString("LOSER!!!!",1,1);  
}