Finished V1
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
graphics.cpp@5:2fb023cdc666, 2019-11-24 (annotated)
- Committer:
- trich9
- Date:
- Sun Nov 24 03:22:35 2019 +0000
- Revision:
- 5:2fb023cdc666
- Parent:
- 4:2297a714936f
finished V1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rconnorlawson | 0:35660d7952f7 | 1 | #include "graphics.h" |
rconnorlawson | 0:35660d7952f7 | 2 | |
rconnorlawson | 0:35660d7952f7 | 3 | #include "globals.h" |
rconnorlawson | 0:35660d7952f7 | 4 | |
rconnorlawson | 0:35660d7952f7 | 5 | |
rconnorlawson | 0:35660d7952f7 | 6 | |
trich9 | 5:2fb023cdc666 | 7 | void draw_player(int u, int v, int key, int needBoat) |
rconnorlawson | 0:35660d7952f7 | 8 | { |
trich9 | 4:2297a714936f | 9 | //OGCODE |
trich9 | 4:2297a714936f | 10 | //uLCD.filled_rectangle(u, v, u+11, v+11, RED); |
trich9 | 4:2297a714936f | 11 | |
trich9 | 4:2297a714936f | 12 | //MYCODE |
trich9 | 5:2fb023cdc666 | 13 | if(needBoat == 0){ |
trich9 | 5:2fb023cdc666 | 14 | char playerSprite[122] = "0000000000000QQQQQQQ0000QUUUUUQ0000QUEUEUQ0000QUUUUUQ000000TUT0000000TUUUT000000TWWWT000000TUUUT000000TUTUT000000TUTUT000"; |
trich9 | 5:2fb023cdc666 | 15 | draw_img(u,v, playerSprite); |
trich9 | 5:2fb023cdc666 | 16 | } |
trich9 | 5:2fb023cdc666 | 17 | else{ |
trich9 | 5:2fb023cdc666 | 18 | char playerBoatSprite[122] = "OOOOOOOOOOOOOOODDDOOOOOOODDDDDOOOOODDDDDDDOOOODUUUUUDOOOODUEUEUDOOOODUUUUUDOOOODDDDDDDOOOODDDDDDDOOOODDDDDDDOOOOOOOOOOOOO"; |
trich9 | 5:2fb023cdc666 | 19 | draw_img(u,v, playerBoatSprite); |
trich9 | 5:2fb023cdc666 | 20 | } |
rconnorlawson | 0:35660d7952f7 | 21 | } |
rconnorlawson | 0:35660d7952f7 | 22 | |
rconnorlawson | 0:35660d7952f7 | 23 | #define YELLOW 0xFFFF00 |
rconnorlawson | 0:35660d7952f7 | 24 | #define BROWN 0xD2691E |
rconnorlawson | 0:35660d7952f7 | 25 | #define DIRT BROWN |
trich9 | 4:2297a714936f | 26 | //MYCODE |
trich9 | 4:2297a714936f | 27 | #define PHAIR 0x663F04 |
trich9 | 4:2297a714936f | 28 | #define DGREEN 0x384236 |
trich9 | 4:2297a714936f | 29 | #define PCOAT 0xF7C6C6 |
trich9 | 4:2297a714936f | 30 | #define PSKIN 0xFF9900 |
trich9 | 4:2297a714936f | 31 | #define WGRAY 0xC9C9C9 |
trich9 | 5:2fb023cdc666 | 32 | #define PINK 0xE009EB |
trich9 | 5:2fb023cdc666 | 33 | #define LBWTR 0x00C4FF |
trich9 | 5:2fb023cdc666 | 34 | #define DBWTR 0x0C667D |
trich9 | 5:2fb023cdc666 | 35 | #define RGRAY 0x242424 |
trich9 | 5:2fb023cdc666 | 36 | |
trich9 | 4:2297a714936f | 37 | |
trich9 | 4:2297a714936f | 38 | |
trich9 | 4:2297a714936f | 39 | //MYCODE |
trich9 | 4:2297a714936f | 40 | |
rconnorlawson | 0:35660d7952f7 | 41 | void draw_img(int u, int v, const char* img) |
rconnorlawson | 0:35660d7952f7 | 42 | { |
rconnorlawson | 0:35660d7952f7 | 43 | int colors[11*11]; |
rconnorlawson | 0:35660d7952f7 | 44 | for (int i = 0; i < 11*11; i++) |
rconnorlawson | 0:35660d7952f7 | 45 | { |
rconnorlawson | 0:35660d7952f7 | 46 | if (img[i] == 'R') colors[i] = RED; |
rconnorlawson | 0:35660d7952f7 | 47 | else if (img[i] == 'Y') colors[i] = YELLOW; |
rconnorlawson | 0:35660d7952f7 | 48 | else if (img[i] == 'G') colors[i] = GREEN; |
rconnorlawson | 0:35660d7952f7 | 49 | else if (img[i] == 'D') colors[i] = DIRT; |
rconnorlawson | 0:35660d7952f7 | 50 | else if (img[i] == '5') colors[i] = LGREY; |
rconnorlawson | 0:35660d7952f7 | 51 | else if (img[i] == '3') colors[i] = DGREY; |
trich9 | 4:2297a714936f | 52 | //MYCODE |
trich9 | 4:2297a714936f | 53 | //Player colors |
trich9 | 4:2297a714936f | 54 | else if (img[i] == 'Q') colors[i] = PHAIR; |
trich9 | 4:2297a714936f | 55 | else if (img[i] == 'E') colors[i] = DGREEN; |
trich9 | 4:2297a714936f | 56 | else if (img[i] == 'W') colors[i] = WHITE; |
trich9 | 4:2297a714936f | 57 | else if (img[i] == 'T') colors[i] = PCOAT; |
trich9 | 4:2297a714936f | 58 | else if (img[i] == 'U') colors[i] = PSKIN; |
trich9 | 4:2297a714936f | 59 | |
trich9 | 4:2297a714936f | 60 | //WALL |
trich9 | 4:2297a714936f | 61 | else if (img[i] == 'I') colors[i] = WGRAY; |
trich9 | 5:2fb023cdc666 | 62 | //NPC |
trich9 | 5:2fb023cdc666 | 63 | else if (img[i] == 'A') colors[i] = PINK; |
trich9 | 5:2fb023cdc666 | 64 | //WATER |
trich9 | 5:2fb023cdc666 | 65 | else if (img[i] == 'O') colors[i] = LBWTR; |
trich9 | 5:2fb023cdc666 | 66 | else if (img[i] == 'P') colors[i] = DBWTR; |
trich9 | 5:2fb023cdc666 | 67 | //ROCKS |
trich9 | 5:2fb023cdc666 | 68 | else if (img[i] == 'S') colors[i] = RGRAY; |
trich9 | 4:2297a714936f | 69 | //ENDMYCODE |
rconnorlawson | 0:35660d7952f7 | 70 | else colors[i] = BLACK; |
rconnorlawson | 0:35660d7952f7 | 71 | } |
rconnorlawson | 0:35660d7952f7 | 72 | uLCD.BLIT(u, v, 11, 11, colors); |
rconnorlawson | 0:35660d7952f7 | 73 | wait_us(250); // Recovery time! |
rconnorlawson | 0:35660d7952f7 | 74 | } |
rconnorlawson | 0:35660d7952f7 | 75 | |
rconnorlawson | 0:35660d7952f7 | 76 | void draw_nothing(int u, int v) |
rconnorlawson | 0:35660d7952f7 | 77 | { |
rconnorlawson | 0:35660d7952f7 | 78 | // Fill a tile with blackness |
rconnorlawson | 0:35660d7952f7 | 79 | uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); |
rconnorlawson | 0:35660d7952f7 | 80 | } |
rconnorlawson | 0:35660d7952f7 | 81 | |
trich9 | 5:2fb023cdc666 | 82 | void draw_expPnt(int u, int v){ |
trich9 | 5:2fb023cdc666 | 83 | char expPntSprite[122] = "00YYYYYYY00000YYYYY000000YYYYY000000YYYYY0000000YYY00000000YYY00000000YYY00000000000000000000Y000000000YYY000000000Y00000"; |
trich9 | 5:2fb023cdc666 | 84 | draw_img(u,v, expPntSprite); |
trich9 | 5:2fb023cdc666 | 85 | } |
trich9 | 5:2fb023cdc666 | 86 | |
rconnorlawson | 0:35660d7952f7 | 87 | void draw_wall(int u, int v) |
rconnorlawson | 0:35660d7952f7 | 88 | { |
trich9 | 4:2297a714936f | 89 | //OGCODE |
trich9 | 4:2297a714936f | 90 | //uLCD.filled_rectangle(u, v, u+10, v+10, BROWN); |
trich9 | 4:2297a714936f | 91 | |
trich9 | 4:2297a714936f | 92 | //MYCODE |
trich9 | 4:2297a714936f | 93 | char wallSprite[122] = "IIIIIIIIIIIWWIIWWWIIWWIIWWIIIWWIIIIIIIIIIIIIWWWWWWWWWWWIIIIIIIIIIIWWWWWWWWWWWIIIIIIIIIIIIIWWIIIWWIIWWIIWWWIIWWIIIIIIIIIII"; |
trich9 | 4:2297a714936f | 94 | draw_img(u,v, wallSprite); |
rconnorlawson | 0:35660d7952f7 | 95 | } |
rconnorlawson | 0:35660d7952f7 | 96 | |
rconnorlawson | 0:35660d7952f7 | 97 | void draw_plant(int u, int v) |
rconnorlawson | 0:35660d7952f7 | 98 | { |
trich9 | 5:2fb023cdc666 | 99 | //OGCODE |
trich9 | 5:2fb023cdc666 | 100 | //uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); |
trich9 | 5:2fb023cdc666 | 101 | char plantSprite[122] = "00000G000000000GGG0000000GGGGG00000GGGGGGG000GGGGGGGGG00GGGGGGGGG0GGGGGGGGGGG0000DDD00000000DDD00000000DDD00000000DDD0000"; |
trich9 | 5:2fb023cdc666 | 102 | draw_img(u,v, plantSprite); |
rconnorlawson | 0:35660d7952f7 | 103 | } |
rconnorlawson | 0:35660d7952f7 | 104 | |
trich9 | 4:2297a714936f | 105 | //MYCODE |
trich9 | 4:2297a714936f | 106 | void draw_NPC(int u, int v) |
trich9 | 4:2297a714936f | 107 | { |
trich9 | 5:2fb023cdc666 | 108 | //uLCD.filled_rectangle(u,v,u+10,v+10, YELLOW); |
trich9 | 5:2fb023cdc666 | 109 | char NPCSprite[122] = "00000000000000GGGGG00000GGGGGGG000GGAGGGAGG00GGAGGGAGG00GGGGGGGGG00GGGGGGGGG00GGAGGGAGG000GGAAAGG00000GGGGG00000000000000"; |
trich9 | 5:2fb023cdc666 | 110 | draw_img(u,v, NPCSprite); |
trich9 | 4:2297a714936f | 111 | } |
trich9 | 4:2297a714936f | 112 | |
trich9 | 4:2297a714936f | 113 | void draw_ladder(int u, int v){ |
trich9 | 4:2297a714936f | 114 | |
trich9 | 4:2297a714936f | 115 | char ladderSprite[122] = "II0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000II"; |
trich9 | 4:2297a714936f | 116 | draw_img(u,v, ladderSprite); |
trich9 | 4:2297a714936f | 117 | } |
trich9 | 4:2297a714936f | 118 | |
trich9 | 5:2fb023cdc666 | 119 | void draw_key(int u, int v){ |
trich9 | 5:2fb023cdc666 | 120 | char keySprite[122] = "000YYYYY0000YYYYYYYY000YYYYYYYY000YYYYYYYY00000YYYYY00000000Y0000000000Y0000000YYYY0000000000Y0000000YYYY0000000000Y00000"; |
trich9 | 5:2fb023cdc666 | 121 | draw_img(u,v,keySprite); |
trich9 | 5:2fb023cdc666 | 122 | } |
trich9 | 5:2fb023cdc666 | 123 | |
trich9 | 5:2fb023cdc666 | 124 | void draw_sonar(int u, int v){ |
trich9 | 5:2fb023cdc666 | 125 | char sonarSprite[122] = "00GGGGGGG000G0000000G0G000000000G00GGGGGGG000G0000000G00000GGG0000000G000G0000000000000000000Y000000000YYY0000000YYYYY000"; |
trich9 | 5:2fb023cdc666 | 126 | draw_img(u,v,sonarSprite); |
trich9 | 5:2fb023cdc666 | 127 | } |
trich9 | 5:2fb023cdc666 | 128 | |
trich9 | 5:2fb023cdc666 | 129 | void draw_treasure(int u, int v){ |
trich9 | 5:2fb023cdc666 | 130 | char treasureSprite[122] = "000000000000YYDDDDDYY0YDDDDDDDDDYYDDDYYYDDDYIIIIYIYIIIIDDDDYYYDDDDDDDDDDDDDDDDDDDDDDDDDDIDDDDDDDDDIIIDDDDDDDII00000000000"; |
trich9 | 5:2fb023cdc666 | 131 | draw_img(u,v,treasureSprite); |
trich9 | 5:2fb023cdc666 | 132 | } |
trich9 | 5:2fb023cdc666 | 133 | |
trich9 | 5:2fb023cdc666 | 134 | void draw_water(int u, int v){ |
trich9 | 5:2fb023cdc666 | 135 | char waterSprite[122] = "OOOOOOOOOOOOOOPOOOPOOOOOOPOOOPOOOOOPPOOPPOOOOOPOOOPOOOOOOPOOOPOOOOOOOOPOOOPOOOOOOPOOOPOOOOOPPOOPPOOOOOPOOOPOOOOOOOOOOOOOO"; |
trich9 | 5:2fb023cdc666 | 136 | draw_img(u,v,waterSprite); |
trich9 | 5:2fb023cdc666 | 137 | } |
trich9 | 5:2fb023cdc666 | 138 | |
trich9 | 5:2fb023cdc666 | 139 | //sparkle1 |
trich9 | 5:2fb023cdc666 | 140 | void draw_waterS1(int u, int v){ |
trich9 | 5:2fb023cdc666 | 141 | char waterS1Sprite[122] = "OOOOOOOOOOOOOOYOOOPOOOOOYYYOOPOOOOOPYOOPPOOOOOPOOOPOOOOOOPOOOPOOOOOOOOPOOOPOOOOOOPOYOPOOOOOPPOOPPOOOOOPOOOPOOOOOOOOOOOOOO"; |
trich9 | 5:2fb023cdc666 | 142 | draw_img(u,v,waterS1Sprite); |
trich9 | 5:2fb023cdc666 | 143 | } |
trich9 | 5:2fb023cdc666 | 144 | |
trich9 | 5:2fb023cdc666 | 145 | void draw_waterS2(int u, int v){ |
trich9 | 5:2fb023cdc666 | 146 | char waterS2Sprite[122] = "OOOOOOOOOOOOOOOOOOPOOOOOOYOOOPOOOOOPOOOPPOOOOOPOOOPOOOOOOPOOOPOOOOOOOOPOYOPOOOOOOPYYYPOOOOOPPOYPPOOOOOPOOOPOOOOOOOOOOOOOO"; |
trich9 | 5:2fb023cdc666 | 147 | draw_img(u,v,waterS2Sprite); |
trich9 | 5:2fb023cdc666 | 148 | } |
trich9 | 5:2fb023cdc666 | 149 | |
trich9 | 5:2fb023cdc666 | 150 | void draw_rock(int u, int v){ |
trich9 | 5:2fb023cdc666 | 151 | char rockSprite[122] = "00000000000000ISSI000000ISSIII0000IISIIIIS00ISIIIIISSI0ISIIIIISIISIISIISISIISISIIISIISSISSIISIISSISSIIISIISIIS0IIISSSIIII"; |
trich9 | 5:2fb023cdc666 | 152 | draw_img(u,v,rockSprite); |
trich9 | 5:2fb023cdc666 | 153 | } |
trich9 | 5:2fb023cdc666 | 154 | |
trich9 | 5:2fb023cdc666 | 155 | |
trich9 | 5:2fb023cdc666 | 156 | |
trich9 | 5:2fb023cdc666 | 157 | void draw_gate(int u, int v){ |
trich9 | 5:2fb023cdc666 | 158 | char gateSprite[122] = "00000000000000YYYYY000000YY0YY000000Y000Y000YYYY000YYYYYYYYY0YYYYYYYYYY0YYYYY000Y000Y000000YY0YY000000YYYYY00000000000000"; |
trich9 | 5:2fb023cdc666 | 159 | draw_img(u,v,gateSprite); |
trich9 | 5:2fb023cdc666 | 160 | } |
trich9 | 5:2fb023cdc666 | 161 | |
trich9 | 5:2fb023cdc666 | 162 | void draw_prisoner(int u, int v){ |
trich9 | 5:2fb023cdc666 | 163 | char prisonerSprite[122] = "IIIIIIIIIIIIWWPWWWPWWIIIIPIIIPIIIIWWPWWWPWWIIIIIIIIIIIIIWWWWWWWWWIIIIIIIIIIIIIWWPPPPPWWIIIIPPPPPIIIIWWWWWWWWWIIIIIIIIIIII"; |
trich9 | 5:2fb023cdc666 | 164 | draw_img(u,v,prisonerSprite); |
trich9 | 5:2fb023cdc666 | 165 | } |
trich9 | 5:2fb023cdc666 | 166 | |
trich9 | 5:2fb023cdc666 | 167 | //"IIIIIIIIIIIIWWPWWWPWWIIIIPIIIPIIIIWWPWWWPWWIIIIIIIIIIIIIWWWWWWWWWIIIIIIIIIIIIIWWPPPPPWWIIIIPPPPPIIIIWWWWWWWWWIIIIIIIIIIII"; |
trich9 | 5:2fb023cdc666 | 168 | |
trich9 | 5:2fb023cdc666 | 169 | void draw_wood(int u, int v) |
trich9 | 5:2fb023cdc666 | 170 | { |
trich9 | 5:2fb023cdc666 | 171 | // Fill a tile with blackness |
trich9 | 5:2fb023cdc666 | 172 | uLCD.filled_rectangle(u, v, u+10, v+10, BROWN); |
trich9 | 5:2fb023cdc666 | 173 | } |
trich9 | 5:2fb023cdc666 | 174 | |
trich9 | 4:2297a714936f | 175 | void draw_upper_status(int playerX, int playerY) |
rconnorlawson | 0:35660d7952f7 | 176 | { |
rconnorlawson | 0:35660d7952f7 | 177 | // Draw bottom border of status bar |
rconnorlawson | 0:35660d7952f7 | 178 | uLCD.line(0, 9, 127, 9, GREEN); |
rconnorlawson | 0:35660d7952f7 | 179 | |
rconnorlawson | 0:35660d7952f7 | 180 | // Add other status info drawing code here |
trich9 | 4:2297a714936f | 181 | |
trich9 | 4:2297a714936f | 182 | //MYCODE |
trich9 | 4:2297a714936f | 183 | uLCD.locate(1,0); |
trich9 | 4:2297a714936f | 184 | uLCD.printf("(%d, %d)", playerX, playerY); |
trich9 | 4:2297a714936f | 185 | |
trich9 | 4:2297a714936f | 186 | |
trich9 | 4:2297a714936f | 187 | |
rconnorlawson | 0:35660d7952f7 | 188 | } |
rconnorlawson | 0:35660d7952f7 | 189 | |
rconnorlawson | 0:35660d7952f7 | 190 | void draw_lower_status() |
rconnorlawson | 0:35660d7952f7 | 191 | { |
rconnorlawson | 0:35660d7952f7 | 192 | // Draw top border of status bar |
rconnorlawson | 0:35660d7952f7 | 193 | uLCD.line(0, 118, 127, 118, GREEN); |
rconnorlawson | 0:35660d7952f7 | 194 | |
rconnorlawson | 0:35660d7952f7 | 195 | // Add other status info drawing code here |
rconnorlawson | 0:35660d7952f7 | 196 | } |
rconnorlawson | 0:35660d7952f7 | 197 | |
rconnorlawson | 0:35660d7952f7 | 198 | void draw_border() |
rconnorlawson | 0:35660d7952f7 | 199 | { |
rconnorlawson | 0:35660d7952f7 | 200 | uLCD.filled_rectangle(0, 9, 127, 14, WHITE); // Top |
rconnorlawson | 0:35660d7952f7 | 201 | uLCD.filled_rectangle(0, 13, 2, 114, WHITE); // Left |
rconnorlawson | 0:35660d7952f7 | 202 | uLCD.filled_rectangle(0, 114, 127, 117, WHITE); // Bottom |
rconnorlawson | 0:35660d7952f7 | 203 | uLCD.filled_rectangle(124, 14, 127, 117, WHITE); // Right |
rconnorlawson | 0:35660d7952f7 | 204 | } |
rconnorlawson | 0:35660d7952f7 | 205 | |
rconnorlawson | 0:35660d7952f7 | 206 |