ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Committer:
el19tb
Date:
Mon May 18 04:39:06 2020 +0000
Revision:
42:04e326dcf09b
Parent:
35:db257b7bdefc
Child:
43:2cd1cfe07770
worked on lcd class to display items in a structured way, cleaned up engine a bit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el19tb 35:db257b7bdefc 1 #include "GraphicEngine.h"
el19tb 35:db257b7bdefc 2
el19tb 42:04e326dcf09b 3 GraphicEngine::GraphicEngine(){}
el19tb 35:db257b7bdefc 4
el19tb 42:04e326dcf09b 5 void GraphicEngine::init()
el19tb 42:04e326dcf09b 6 {
el19tb 35:db257b7bdefc 7 lcd.init();
el19tb 35:db257b7bdefc 8 }
el19tb 35:db257b7bdefc 9
el19tb 42:04e326dcf09b 10 /* TO-DO: ADD CONTROLS FOR BACKLIGHT */
el19tb 42:04e326dcf09b 11 void GraphicEngine::contrast()
el19tb 42:04e326dcf09b 12 {
el19tb 42:04e326dcf09b 13 lcd.setContrast(0.4);
el19tb 42:04e326dcf09b 14 }
el19tb 42:04e326dcf09b 15
el19tb 42:04e326dcf09b 16 void GraphicEngine::clear()
el19tb 42:04e326dcf09b 17 {
el19tb 42:04e326dcf09b 18 lcd.clear();
el19tb 35:db257b7bdefc 19 }
el19tb 35:db257b7bdefc 20
el19tb 42:04e326dcf09b 21 void GraphicEngine::refresh()
el19tb 42:04e326dcf09b 22 {
el19tb 42:04e326dcf09b 23 lcd.refresh();
el19tb 42:04e326dcf09b 24 }
el19tb 42:04e326dcf09b 25
el19tb 42:04e326dcf09b 26 void GraphicEngine::backLightOn()
el19tb 35:db257b7bdefc 27 {
el19tb 42:04e326dcf09b 28 lcd.backLightOn();
el19tb 42:04e326dcf09b 29 }
el19tb 42:04e326dcf09b 30
el19tb 42:04e326dcf09b 31 void GraphicEngine::showObj(Object &obj)
el19tb 42:04e326dcf09b 32 {
el19tb 42:04e326dcf09b 33 if(obj.object.c = 'G' || obj.object.c = 'M' || obj.object.c = 'T') {
el19tb 42:04e326dcf09b 34 displayLog(obj.object.x, obj.object.y, obj.object.c);
el19tb 42:04e326dcf09b 35 } else {
el19tb 42:04e326dcf09b 36 displayVehicle(obj.object.x, obj.object.y, obj.object.c);
el19tb 35:db257b7bdefc 37 }
el19tb 35:db257b7bdefc 38 }
el19tb 35:db257b7bdefc 39
el19tb 42:04e326dcf09b 40 void GraphicEngine::displayVehicle(int x, int y, char c)
el19tb 35:db257b7bdefc 41 {
el19tb 42:04e326dcf09b 42 switch(c)
el19tb 35:db257b7bdefc 43 {
el19tb 42:04e326dcf09b 44 case 'L': lcd.drawSprite(x, y, 4, 6, (int *)left_racer);
el19tb 42:04e326dcf09b 45 break;
el19tb 42:04e326dcf09b 46 case 'R' : lcd.drawSprite(x, y, 4, 6, (int *)right_racer);
el19tb 42:04e326dcf09b 47 break;
el19tb 42:04e326dcf09b 48 case 'B': lcd.drawSprite(x, y, 4, 7, (int *)bus);
el19tb 35:db257b7bdefc 49 break;
el19tb 42:04e326dcf09b 50 case 'N': lcd.drawSprite(x, y, 4, 5, (int *)right_normal);
el19tb 42:04e326dcf09b 51 break;
el19tb 42:04e326dcf09b 52 case 'X': lcd.drawSprite(x, y, 4, 5, (int *)left_normal);
el19tb 42:04e326dcf09b 53 break;
el19tb 42:04e326dcf09b 54 }
el19tb 35:db257b7bdefc 55 }
el19tb 35:db257b7bdefc 56
el19tb 42:04e326dcf09b 57 void GraphicEngine::displayLog(int x, int y, char c)
el19tb 35:db257b7bdefc 58 {
el19tb 42:04e326dcf09b 59 switch(c)
el19tb 42:04e326dcf09b 60 {
el19tb 42:04e326dcf09b 61 case 'G':
el19tb 42:04e326dcf09b 62 lcd.drawSprite(x, y, 4, 4, (int *)big_log);
el19tb 42:04e326dcf09b 63 break;
el19tb 42:04e326dcf09b 64
el19tb 42:04e326dcf09b 65 case 'M':
el19tb 42:04e326dcf09b 66 lcd.drawSprite(x, y, 4, 4, (int *)medium_log);
el19tb 42:04e326dcf09b 67 break;
el19tb 42:04e326dcf09b 68
el19tb 42:04e326dcf09b 69 case 'T':
el19tb 42:04e326dcf09b 70 lcd.drawSprite(x, y, 4, 4, (int *)turtles);
el19tb 42:04e326dcf09b 71 break;
el19tb 42:04e326dcf09b 72 }
el19tb 35:db257b7bdefc 73 }
el19tb 35:db257b7bdefc 74
el19tb 42:04e326dcf09b 75 /* TO-DO: ADD SPRITES AND SPRITE STATE */
el19tb 42:04e326dcf09b 76 void GraphicEngine::showFrog(Frog &frog)
el19tb 35:db257b7bdefc 77 {
el19tb 42:04e326dcf09b 78 lcd.drawRect(frog.x, frog.y, frog.width, frog.height, FILL_BLACK);
el19tb 42:04e326dcf09b 79 }
el19tb 35:db257b7bdefc 80
el19tb 35:db257b7bdefc 81 void GraphicEngine::drawGoal(int x, int row)
el19tb 35:db257b7bdefc 82 {
el19tb 35:db257b7bdefc 83 lcd.drawSprite(x, row, 8, 8, (int *)end_post);
el19tb 35:db257b7bdefc 84 }
el19tb 35:db257b7bdefc 85
el19tb 42:04e326dcf09b 86 void GraphicEngine::drawSafetyLanes()
el19tb 42:04e326dcf09b 87 {
el19tb 42:04e326dcf09b 88 lcd.drawRect(0, 48 - 4, 84, 4, FILL_TRANSPARENT); // row 0 -> bottom
el19tb 42:04e326dcf09b 89 lcd.drawRect(0, 48 - 4*6, 84, 4, FILL_TRANSPARENT); // row 6 -> middle(ish)
el19tb 35:db257b7bdefc 90 }
el19tb 35:db257b7bdefc 91
el19tb 35:db257b7bdefc 92 void GraphicEngine::printTest(){
el19tb 35:db257b7bdefc 93 lcd.printString("SQUISHED", 1, 1);
el19tb 35:db257b7bdefc 94 }
el19tb 35:db257b7bdefc 95
el19tb 35:db257b7bdefc 96 void GraphicEngine::print(){
el19tb 35:db257b7bdefc 97 lcd.printString("DROWNED",1,1);
el19tb 35:db257b7bdefc 98 }