Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
}