ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Committer:
el19tb
Date:
Mon May 18 06:34:53 2020 +0000
Revision:
43:2cd1cfe07770
Parent:
42:04e326dcf09b
Child:
44:f02510eeb165
fixed bugs throughout program, fixed array size issue, fixed functions

Who changed what in which revision?

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