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@42:04e326dcf09b, 2020-05-18 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |