ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Committer:
el19tb
Date:
Sat May 23 02:55:16 2020 +0000
Revision:
46:e39abe665271
Parent:
45:e40c4f89ed7c
Child:
47:29c4796a49e5
made collision system work;

Who changed what in which revision?

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