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@49:6cad8b6ec5f2, 2020-05-24 (annotated)
- Committer:
- el19tb
- Date:
- Sun May 24 02:30:49 2020 +0000
- Revision:
- 49:6cad8b6ec5f2
- Parent:
- 48:8ccfc74b60a5
- Child:
- 50:9ffeb4a10c0a
fixed bugs regarding car reappearence, created sprites for objets, background
Who changed what in which revision?
| User | Revision | Line number | New 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 | 48:8ccfc74b60a5 | 17 | lcd.setContrast(0.45); |
| 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 | 49:6cad8b6ec5f2 | 43 | void GraphicEngine::drawDangerZone() |
| el19tb | 49:6cad8b6ec5f2 | 44 | { |
| el19tb | 49:6cad8b6ec5f2 | 45 | lcd.drawSprite(0, 48 - 4*11, 7, 83, (int *)danger_zone); |
| el19tb | 49:6cad8b6ec5f2 | 46 | } |
| el19tb | 35:db257b7bdefc | 47 | |
| el19tb | 42:04e326dcf09b | 48 | void GraphicEngine::displayVehicle(int x, int y, char c) |
| el19tb | 35:db257b7bdefc | 49 | { |
| el19tb | 42:04e326dcf09b | 50 | switch(c) |
| el19tb | 35:db257b7bdefc | 51 | { |
| el19tb | 44:f02510eeb165 | 52 | case 'L': |
| el19tb | 46:e39abe665271 | 53 | lcd.drawSprite(x, y, 4, 12, (int *)left_racer); |
| el19tb | 42:04e326dcf09b | 54 | break; |
| el19tb | 44:f02510eeb165 | 55 | case 'R' : |
| el19tb | 46:e39abe665271 | 56 | lcd.drawSprite(x, y, 4, 12, (int *)right_racer); |
| el19tb | 42:04e326dcf09b | 57 | break; |
| el19tb | 44:f02510eeb165 | 58 | case 'B': |
| el19tb | 46:e39abe665271 | 59 | lcd.drawSprite(x, y, 4, 16, (int *)bus); |
| el19tb | 35:db257b7bdefc | 60 | break; |
| el19tb | 44:f02510eeb165 | 61 | case 'N': |
| el19tb | 46:e39abe665271 | 62 | lcd.drawSprite(x, y, 4, 10, (int *)right_normal); |
| el19tb | 42:04e326dcf09b | 63 | break; |
| el19tb | 44:f02510eeb165 | 64 | case 'X': |
| el19tb | 46:e39abe665271 | 65 | lcd.drawSprite(x, y, 4, 10, (int *)left_normal); |
| el19tb | 42:04e326dcf09b | 66 | break; |
| el19tb | 42:04e326dcf09b | 67 | } |
| el19tb | 35:db257b7bdefc | 68 | } |
| el19tb | 35:db257b7bdefc | 69 | |
| el19tb | 42:04e326dcf09b | 70 | void GraphicEngine::displayLog(int x, int y, char c) |
| el19tb | 35:db257b7bdefc | 71 | { |
| el19tb | 42:04e326dcf09b | 72 | switch(c) |
| el19tb | 42:04e326dcf09b | 73 | { |
| el19tb | 42:04e326dcf09b | 74 | case 'G': |
| el19tb | 46:e39abe665271 | 75 | lcd.drawSprite(x, y, 4, 20, (int *)log_big); |
| el19tb | 42:04e326dcf09b | 76 | break; |
| el19tb | 42:04e326dcf09b | 77 | |
| el19tb | 42:04e326dcf09b | 78 | case 'M': |
| el19tb | 46:e39abe665271 | 79 | lcd.drawSprite(x, y, 4, 16, (int *)medium_log); |
| el19tb | 42:04e326dcf09b | 80 | break; |
| el19tb | 42:04e326dcf09b | 81 | |
| el19tb | 42:04e326dcf09b | 82 | case 'T': |
| el19tb | 43:2cd1cfe07770 | 83 | lcd.drawSprite(x, y, 4, 12, (int *)turtles); |
| el19tb | 42:04e326dcf09b | 84 | break; |
| el19tb | 42:04e326dcf09b | 85 | } |
| el19tb | 35:db257b7bdefc | 86 | } |
| el19tb | 35:db257b7bdefc | 87 | |
| el19tb | 42:04e326dcf09b | 88 | /* TO-DO: ADD SPRITES AND SPRITE STATE */ |
| el19tb | 47:29c4796a49e5 | 89 | void GraphicEngine::showFrog(float x, int y, int width, int height, int state) |
| el19tb | 35:db257b7bdefc | 90 | { |
| el19tb | 47:29c4796a49e5 | 91 | switch(state) |
| el19tb | 47:29c4796a49e5 | 92 | { |
| el19tb | 47:29c4796a49e5 | 93 | case 0: |
| el19tb | 47:29c4796a49e5 | 94 | lcd.drawSprite(x, y, 4, 6, (int *)frog_state_up); |
| el19tb | 47:29c4796a49e5 | 95 | break; |
| el19tb | 47:29c4796a49e5 | 96 | case 1: |
| el19tb | 47:29c4796a49e5 | 97 | lcd.drawSprite(x, y, 4, 6, (int *)frog_state_left); |
| el19tb | 47:29c4796a49e5 | 98 | break; |
| el19tb | 47:29c4796a49e5 | 99 | case 2: |
| el19tb | 47:29c4796a49e5 | 100 | lcd.drawSprite(x, y, 4, 6, (int *)frog_state_right); |
| el19tb | 47:29c4796a49e5 | 101 | break; |
| el19tb | 47:29c4796a49e5 | 102 | case 3: |
| el19tb | 47:29c4796a49e5 | 103 | lcd.drawSprite(x, y, 4, 6, (int *)frog_state_down); |
| el19tb | 47:29c4796a49e5 | 104 | break; |
| el19tb | 47:29c4796a49e5 | 105 | } |
| el19tb | 42:04e326dcf09b | 106 | } |
| el19tb | 35:db257b7bdefc | 107 | |
| el19tb | 42:04e326dcf09b | 108 | void GraphicEngine::drawSafetyLanes() |
| el19tb | 42:04e326dcf09b | 109 | { |
| el19tb | 49:6cad8b6ec5f2 | 110 | lcd.drawSprite(0, 48 - 4, 4, 83, (int *)safety_zone); // row 0 -> bottom |
| el19tb | 49:6cad8b6ec5f2 | 111 | |
| el19tb | 49:6cad8b6ec5f2 | 112 | lcd.drawSprite(0, 48 - 4*6, 4, 83, (int *)safety_zone); // row 6 -> middle(ish) |
| el19tb | 49:6cad8b6ec5f2 | 113 | } |
| el19tb | 49:6cad8b6ec5f2 | 114 | |
| el19tb | 49:6cad8b6ec5f2 | 115 | void GraphicEngine::drawEndPost() |
| el19tb | 49:6cad8b6ec5f2 | 116 | { |
| el19tb | 49:6cad8b6ec5f2 | 117 | lcd.drawSprite(24, 48 - 4*11, 8, 12, (int *)goal_post); |
| el19tb | 35:db257b7bdefc | 118 | } |
| el19tb | 35:db257b7bdefc | 119 | |
| el19tb | 44:f02510eeb165 | 120 | void GraphicEngine::printTest() |
| el19tb | 44:f02510eeb165 | 121 | { |
| el19tb | 35:db257b7bdefc | 122 | lcd.printString("SQUISHED", 1, 1); |
| el19tb | 35:db257b7bdefc | 123 | } |
| el19tb | 35:db257b7bdefc | 124 | |
| el19tb | 44:f02510eeb165 | 125 | void GraphicEngine::print() |
| el19tb | 44:f02510eeb165 | 126 | { |
| el19tb | 35:db257b7bdefc | 127 | lcd.printString("DROWNED",1,1); |
| el19tb | 35:db257b7bdefc | 128 | } |
| el19tb | 43:2cd1cfe07770 | 129 | |
| el19tb | 44:f02510eeb165 | 130 | void GraphicEngine::printLoser() |
| el19tb | 44:f02510eeb165 | 131 | { |
| el19tb | 44:f02510eeb165 | 132 | lcd.printString("LOSER!!!!",1,1); |
| el19tb | 44:f02510eeb165 | 133 | } |
| el19tb | 44:f02510eeb165 | 134 |