ECE2035 Project 2
Dependencies: mbed mbed-rtos SDFileSystem
graphics.cpp@10:1994adcfc86f, 2021-04-20 (annotated)
- Committer:
- kwengryn3
- Date:
- Tue Apr 20 18:15:22 2021 +0000
- Revision:
- 10:1994adcfc86f
- Parent:
- 0:bff8b9020128
adv features
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kwengryn3 | 0:bff8b9020128 | 1 | #include "graphics.h" |
kwengryn3 | 0:bff8b9020128 | 2 | #include "globals.h" |
kwengryn3 | 0:bff8b9020128 | 3 | |
kwengryn3 | 0:bff8b9020128 | 4 | #define YELLOW 0xFFFF00 |
kwengryn3 | 0:bff8b9020128 | 5 | #define GREEN 0x00FF00 |
kwengryn3 | 0:bff8b9020128 | 6 | #define WHITE 0xFFFFFF |
kwengryn3 | 0:bff8b9020128 | 7 | #define BLACK 0x000000 |
kwengryn3 | 0:bff8b9020128 | 8 | #define BROWN 0xD2691E |
kwengryn3 | 0:bff8b9020128 | 9 | #define DIRT BROWN |
kwengryn3 | 0:bff8b9020128 | 10 | #define RED 0xFF0000 |
kwengryn3 | 0:bff8b9020128 | 11 | #define ORANGE 0xFFA500 |
kwengryn3 | 10:1994adcfc86f | 12 | #define X 0xFF0000 |
kwengryn3 | 10:1994adcfc86f | 13 | #define _ 0x000000 |
kwengryn3 | 10:1994adcfc86f | 14 | #define W 0xFFFFFF |
kwengryn3 | 10:1994adcfc86f | 15 | #define O 0xFD6A02 |
kwengryn3 | 10:1994adcfc86f | 16 | #define G 0x00FF00 |
kwengryn3 | 10:1994adcfc86f | 17 | #define B 0x664229 |
kwengryn3 | 10:1994adcfc86f | 18 | #define Y 0xFFFF00 |
kwengryn3 | 10:1994adcfc86f | 19 | |
kwengryn3 | 10:1994adcfc86f | 20 | |
kwengryn3 | 10:1994adcfc86f | 21 | int bomb_sprite[10 * 10] = { |
kwengryn3 | 10:1994adcfc86f | 22 | _,_,_,_,_,X,X,X,X,X, |
kwengryn3 | 10:1994adcfc86f | 23 | _,_,_,X,X,X,X,_,_,X, |
kwengryn3 | 10:1994adcfc86f | 24 | _,_,_,X,X,X,X,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 25 | _,X,X,X,X,X,X,X,X,_, |
kwengryn3 | 10:1994adcfc86f | 26 | X,X,X,X,X,X,X,X,X,X, |
kwengryn3 | 10:1994adcfc86f | 27 | X,X,X,X,X,X,X,X,X,X, |
kwengryn3 | 10:1994adcfc86f | 28 | X,X,X,X,X,X,X,X,X,X, |
kwengryn3 | 10:1994adcfc86f | 29 | X,X,X,X,X,X,X,X,X,X, |
kwengryn3 | 10:1994adcfc86f | 30 | _,X,X,X,X,X,X,X,X,_, |
kwengryn3 | 10:1994adcfc86f | 31 | _,_,X,X,X,X,X,X,_,_, |
kwengryn3 | 10:1994adcfc86f | 32 | }; |
kwengryn3 | 10:1994adcfc86f | 33 | |
kwengryn3 | 10:1994adcfc86f | 34 | int orange_sprite[10 * 10] = { |
kwengryn3 | 10:1994adcfc86f | 35 | _,G,G,G,B,B,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 36 | _,_,_,_,B,B,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 37 | _,O,O,O,O,O,O,O,O,_, |
kwengryn3 | 10:1994adcfc86f | 38 | O,O,O,O,O,O,O,O,O,O, |
kwengryn3 | 10:1994adcfc86f | 39 | O,O,O,O,O,O,O,O,O,O, |
kwengryn3 | 10:1994adcfc86f | 40 | O,O,O,O,O,O,O,O,O,O, |
kwengryn3 | 10:1994adcfc86f | 41 | O,O,O,O,O,O,O,O,O,O, |
kwengryn3 | 10:1994adcfc86f | 42 | O,O,O,O,O,O,O,O,O,O, |
kwengryn3 | 10:1994adcfc86f | 43 | _,O,O,O,O,O,O,O,O,_, |
kwengryn3 | 10:1994adcfc86f | 44 | _,_,O,O,O,O,O,O,_,_, |
kwengryn3 | 10:1994adcfc86f | 45 | }; |
kwengryn3 | 10:1994adcfc86f | 46 | |
kwengryn3 | 10:1994adcfc86f | 47 | int apple_sprite[10 * 10] = { |
kwengryn3 | 10:1994adcfc86f | 48 | _,G,G,G,B,B,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 49 | _,_,_,_,B,B,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 50 | _,G,G,G,G,G,G,G,G,_, |
kwengryn3 | 10:1994adcfc86f | 51 | G,G,G,G,G,G,G,G,G,G, |
kwengryn3 | 10:1994adcfc86f | 52 | G,G,G,G,G,G,G,G,G,G, |
kwengryn3 | 10:1994adcfc86f | 53 | G,G,G,G,G,G,G,G,G,G, |
kwengryn3 | 10:1994adcfc86f | 54 | G,G,G,G,G,G,G,G,G,G, |
kwengryn3 | 10:1994adcfc86f | 55 | G,G,G,G,G,G,G,G,G,G, |
kwengryn3 | 10:1994adcfc86f | 56 | _,G,G,G,G,G,G,G,G,_, |
kwengryn3 | 10:1994adcfc86f | 57 | _,_,G,G,G,G,G,G,_,_, |
kwengryn3 | 10:1994adcfc86f | 58 | }; |
kwengryn3 | 10:1994adcfc86f | 59 | |
kwengryn3 | 10:1994adcfc86f | 60 | int banana_sprite[10 * 10] = { |
kwengryn3 | 10:1994adcfc86f | 61 | _,_,_,_,_,_,_,_,B,B, |
kwengryn3 | 10:1994adcfc86f | 62 | _,_,_,_,_,_,_,_,B,B, |
kwengryn3 | 10:1994adcfc86f | 63 | _,_,_,_,_,_,_,B,B,B, |
kwengryn3 | 10:1994adcfc86f | 64 | _,_,_,_,_,Y,Y,Y,Y,Y, |
kwengryn3 | 10:1994adcfc86f | 65 | _,_,_,_,Y,Y,Y,Y,Y,Y, |
kwengryn3 | 10:1994adcfc86f | 66 | _,_,Y,Y,Y,Y,Y,Y,Y,_, |
kwengryn3 | 10:1994adcfc86f | 67 | Y,Y,Y,Y,Y,Y,Y,Y,_,_, |
kwengryn3 | 10:1994adcfc86f | 68 | Y,Y,Y,Y,Y,Y,Y,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 69 | Y,Y,Y,Y,Y,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 70 | }; |
kwengryn3 | 10:1994adcfc86f | 71 | |
kwengryn3 | 10:1994adcfc86f | 72 | int fruit_mask[10 * 10] = { |
kwengryn3 | 10:1994adcfc86f | 73 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 74 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 75 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 76 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 77 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 78 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 79 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 80 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 81 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 82 | _,_,_,_,_,_,_,_,_,_, |
kwengryn3 | 10:1994adcfc86f | 83 | |
kwengryn3 | 10:1994adcfc86f | 84 | }; |
kwengryn3 | 10:1994adcfc86f | 85 | |
kwengryn3 | 10:1994adcfc86f | 86 | |
kwengryn3 | 0:bff8b9020128 | 87 | void draw_img(int u, int v, const char* img) |
kwengryn3 | 0:bff8b9020128 | 88 | { |
kwengryn3 | 0:bff8b9020128 | 89 | int colors[11*11]; |
kwengryn3 | 0:bff8b9020128 | 90 | for (int i = 0; i < 11*11; i++) |
kwengryn3 | 0:bff8b9020128 | 91 | { |
kwengryn3 | 0:bff8b9020128 | 92 | if (img[i] == 'R') colors[i] = RED; |
kwengryn3 | 0:bff8b9020128 | 93 | else if (img[i] == 'Y') colors[i] = YELLOW; |
kwengryn3 | 0:bff8b9020128 | 94 | else if (img[i] == 'G') colors[i] = GREEN; |
kwengryn3 | 0:bff8b9020128 | 95 | else if (img[i] == 'D') colors[i] = DIRT; |
kwengryn3 | 0:bff8b9020128 | 96 | // else if (img[i] == '5') colors[i] = LGREY; |
kwengryn3 | 0:bff8b9020128 | 97 | // else if (img[i] == '3') colors[i] = DGREY; |
kwengryn3 | 0:bff8b9020128 | 98 | else colors[i] = BLACK; |
kwengryn3 | 0:bff8b9020128 | 99 | } |
kwengryn3 | 0:bff8b9020128 | 100 | uLCD.BLIT(u, v, 11, 11, colors); |
kwengryn3 | 0:bff8b9020128 | 101 | wait_us(250); // Recovery time! |
kwengryn3 | 0:bff8b9020128 | 102 | } |
kwengryn3 | 0:bff8b9020128 | 103 | |
kwengryn3 | 0:bff8b9020128 | 104 | void draw_player(int u, int v, int key) |
kwengryn3 | 0:bff8b9020128 | 105 | { |
kwengryn3 | 0:bff8b9020128 | 106 | uLCD.filled_rectangle(u, v, u+11, v+11, WHITE); |
kwengryn3 | 0:bff8b9020128 | 107 | } |
kwengryn3 | 0:bff8b9020128 | 108 | |
kwengryn3 | 0:bff8b9020128 | 109 | void draw_nothing(boundingBox b) |
kwengryn3 | 0:bff8b9020128 | 110 | { |
kwengryn3 | 0:bff8b9020128 | 111 | // Erase a bounding box |
kwengryn3 | 10:1994adcfc86f | 112 | //uLCD.filled_rectangle(b.topLeft.x, b.topLeft.y, b.bottomRight.x, b.bottomRight.y, BLACK); |
kwengryn3 | 10:1994adcfc86f | 113 | uLCD.BLIT(b.topLeft.x, b.topLeft.y, 10, 10, fruit_mask); |
kwengryn3 | 0:bff8b9020128 | 114 | } |
kwengryn3 | 0:bff8b9020128 | 115 | |
kwengryn3 | 0:bff8b9020128 | 116 | void draw_bomb(boundingBox b) |
kwengryn3 | 0:bff8b9020128 | 117 | { |
kwengryn3 | 0:bff8b9020128 | 118 | // Draw an apple using a filled_rectangle or get creative and use a sprite! |
kwengryn3 | 10:1994adcfc86f | 119 | //uLCD.filled_rectangle(b.topLeft.x, b.topLeft.y, b.bottomRight.x, b.bottomRight.y, RED); |
kwengryn3 | 10:1994adcfc86f | 120 | uLCD.BLIT(b.topLeft.x, b.topLeft.y, 10, 10, bomb_sprite); |
kwengryn3 | 0:bff8b9020128 | 121 | } |
kwengryn3 | 0:bff8b9020128 | 122 | |
kwengryn3 | 0:bff8b9020128 | 123 | void draw_banana(boundingBox b) |
kwengryn3 | 0:bff8b9020128 | 124 | { |
kwengryn3 | 0:bff8b9020128 | 125 | // Draw a banana using a filled_rectangle or get creative and use a sprite! |
kwengryn3 | 10:1994adcfc86f | 126 | //uLCD.filled_rectangle(b.topLeft.x, b.topLeft.y, b.bottomRight.x, b.bottomRight.y, YELLOW); |
kwengryn3 | 10:1994adcfc86f | 127 | uLCD.BLIT(b.topLeft.x, b.topLeft.y, 10, 10, banana_sprite); |
kwengryn3 | 0:bff8b9020128 | 128 | } |
kwengryn3 | 0:bff8b9020128 | 129 | |
kwengryn3 | 0:bff8b9020128 | 130 | void draw_orange(boundingBox b) |
kwengryn3 | 0:bff8b9020128 | 131 | { |
kwengryn3 | 0:bff8b9020128 | 132 | // Draw an orange using a filled_rectangle or get creative and use a sprite! |
kwengryn3 | 10:1994adcfc86f | 133 | //uLCD.filled_rectangle(b.topLeft.x, b.topLeft.y, b.bottomRight.x, b.bottomRight.y, ORANGE); |
kwengryn3 | 10:1994adcfc86f | 134 | uLCD.BLIT(b.topLeft.x, b.topLeft.y, 10, 10, orange_sprite); |
kwengryn3 | 0:bff8b9020128 | 135 | } |
kwengryn3 | 10:1994adcfc86f | 136 | |
kwengryn3 | 10:1994adcfc86f | 137 | void draw_apple(boundingBox b) { |
kwengryn3 | 10:1994adcfc86f | 138 | uLCD.BLIT(b.topLeft.x, b.topLeft.y, 10, 10, apple_sprite); |
kwengryn3 | 10:1994adcfc86f | 139 | } |
kwengryn3 | 10:1994adcfc86f | 140 | |
kwengryn3 | 10:1994adcfc86f | 141 |