An easy way to make bitmaps to be drawn on a Nokia N5110 lcd display
Dependencies: N5110_fordrawings
Dependents: DCGame el14m2l_Dungeon_Crawler_Game
drawings.cpp@0:9fcda3ae181c, 2016-05-05 (annotated)
- Committer:
- Martyrtle
- Date:
- Thu May 05 14:26:07 2016 +0000
- Revision:
- 0:9fcda3ae181c
Done
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Martyrtle | 0:9fcda3ae181c | 1 | /** |
Martyrtle | 0:9fcda3ae181c | 2 | @file drawings.cpp |
Martyrtle | 0:9fcda3ae181c | 3 | |
Martyrtle | 0:9fcda3ae181c | 4 | @brief Member functions implementations |
Martyrtle | 0:9fcda3ae181c | 5 | |
Martyrtle | 0:9fcda3ae181c | 6 | */ |
Martyrtle | 0:9fcda3ae181c | 7 | |
Martyrtle | 0:9fcda3ae181c | 8 | #include "drawings.h" |
Martyrtle | 0:9fcda3ae181c | 9 | |
Martyrtle | 0:9fcda3ae181c | 10 | extern Screen screen; |
Martyrtle | 0:9fcda3ae181c | 11 | |
Martyrtle | 0:9fcda3ae181c | 12 | void Screen::init() |
Martyrtle | 0:9fcda3ae181c | 13 | { |
Martyrtle | 0:9fcda3ae181c | 14 | for(int i=0; i<3; i++) { |
Martyrtle | 0:9fcda3ae181c | 15 | for(int j=0; j<48; j++) { |
Martyrtle | 0:9fcda3ae181c | 16 | for(int k=0; k<84; k++) { |
Martyrtle | 0:9fcda3ae181c | 17 | layers[j][k][i]=0; |
Martyrtle | 0:9fcda3ae181c | 18 | } |
Martyrtle | 0:9fcda3ae181c | 19 | } |
Martyrtle | 0:9fcda3ae181c | 20 | } |
Martyrtle | 0:9fcda3ae181c | 21 | } |
Martyrtle | 0:9fcda3ae181c | 22 | |
Martyrtle | 0:9fcda3ae181c | 23 | void Screen::set_pixel(int x, int y, int layer) |
Martyrtle | 0:9fcda3ae181c | 24 | { |
Martyrtle | 0:9fcda3ae181c | 25 | layers[y][x][layer]=1; |
Martyrtle | 0:9fcda3ae181c | 26 | } |
Martyrtle | 0:9fcda3ae181c | 27 | |
Martyrtle | 0:9fcda3ae181c | 28 | void Screen::clear_pixel(int x, int y, int layer) |
Martyrtle | 0:9fcda3ae181c | 29 | { |
Martyrtle | 0:9fcda3ae181c | 30 | layers[y][x][layer]=2; |
Martyrtle | 0:9fcda3ae181c | 31 | } |
Martyrtle | 0:9fcda3ae181c | 32 | |
Martyrtle | 0:9fcda3ae181c | 33 | void Screen::clear_layer(int layer) |
Martyrtle | 0:9fcda3ae181c | 34 | { |
Martyrtle | 0:9fcda3ae181c | 35 | for(int i=0; i<48; i++) { |
Martyrtle | 0:9fcda3ae181c | 36 | for(int j=0; j<84; j++) { |
Martyrtle | 0:9fcda3ae181c | 37 | layers[i][j][layer]=0; |
Martyrtle | 0:9fcda3ae181c | 38 | } |
Martyrtle | 0:9fcda3ae181c | 39 | } |
Martyrtle | 0:9fcda3ae181c | 40 | } |
Martyrtle | 0:9fcda3ae181c | 41 | |
Martyrtle | 0:9fcda3ae181c | 42 | void Screen::clear() |
Martyrtle | 0:9fcda3ae181c | 43 | { |
Martyrtle | 0:9fcda3ae181c | 44 | for(int i=0; i<3; i++) { |
Martyrtle | 0:9fcda3ae181c | 45 | clear_layer(i); |
Martyrtle | 0:9fcda3ae181c | 46 | } |
Martyrtle | 0:9fcda3ae181c | 47 | } |
Martyrtle | 0:9fcda3ae181c | 48 | |
Martyrtle | 0:9fcda3ae181c | 49 | void Screen::draw_layer(int layer) |
Martyrtle | 0:9fcda3ae181c | 50 | { |
Martyrtle | 0:9fcda3ae181c | 51 | for(int i=0; i<48; i++) { |
Martyrtle | 0:9fcda3ae181c | 52 | for(int j=0; j<84; j++) { |
Martyrtle | 0:9fcda3ae181c | 53 | switch(layers[i][j][layer]) { |
Martyrtle | 0:9fcda3ae181c | 54 | case 1: |
Martyrtle | 0:9fcda3ae181c | 55 | lcd.setPixel(j,i); |
Martyrtle | 0:9fcda3ae181c | 56 | break; |
Martyrtle | 0:9fcda3ae181c | 57 | case 2: |
Martyrtle | 0:9fcda3ae181c | 58 | lcd.clearPixel(j,i); |
Martyrtle | 0:9fcda3ae181c | 59 | break; |
Martyrtle | 0:9fcda3ae181c | 60 | default: |
Martyrtle | 0:9fcda3ae181c | 61 | break; |
Martyrtle | 0:9fcda3ae181c | 62 | } |
Martyrtle | 0:9fcda3ae181c | 63 | } |
Martyrtle | 0:9fcda3ae181c | 64 | } |
Martyrtle | 0:9fcda3ae181c | 65 | } |
Martyrtle | 0:9fcda3ae181c | 66 | |
Martyrtle | 0:9fcda3ae181c | 67 | void Screen::draw() |
Martyrtle | 0:9fcda3ae181c | 68 | { |
Martyrtle | 0:9fcda3ae181c | 69 | for(int i=0; i<3; i++) { |
Martyrtle | 0:9fcda3ae181c | 70 | draw_layer(i); |
Martyrtle | 0:9fcda3ae181c | 71 | } |
Martyrtle | 0:9fcda3ae181c | 72 | } |
Martyrtle | 0:9fcda3ae181c | 73 | |
Martyrtle | 0:9fcda3ae181c | 74 | bool Screen::get_pixel(int x, int y, int layer) |
Martyrtle | 0:9fcda3ae181c | 75 | { |
Martyrtle | 0:9fcda3ae181c | 76 | return layers[y][x][layer]; |
Martyrtle | 0:9fcda3ae181c | 77 | } |
Martyrtle | 0:9fcda3ae181c | 78 | |
Martyrtle | 0:9fcda3ae181c | 79 | void object::fill(const char array[][3]) |
Martyrtle | 0:9fcda3ae181c | 80 | { |
Martyrtle | 0:9fcda3ae181c | 81 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 82 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 83 | line[i][j] = array[i][j]; |
Martyrtle | 0:9fcda3ae181c | 84 | } |
Martyrtle | 0:9fcda3ae181c | 85 | } |
Martyrtle | 0:9fcda3ae181c | 86 | } |
Martyrtle | 0:9fcda3ae181c | 87 | |
Martyrtle | 0:9fcda3ae181c | 88 | void object::fill(const char array[][5]) |
Martyrtle | 0:9fcda3ae181c | 89 | { |
Martyrtle | 0:9fcda3ae181c | 90 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 91 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 92 | line[i][j] = array[i][j]; |
Martyrtle | 0:9fcda3ae181c | 93 | } |
Martyrtle | 0:9fcda3ae181c | 94 | } |
Martyrtle | 0:9fcda3ae181c | 95 | } |
Martyrtle | 0:9fcda3ae181c | 96 | |
Martyrtle | 0:9fcda3ae181c | 97 | void object::fill(const char array[][6]) |
Martyrtle | 0:9fcda3ae181c | 98 | { |
Martyrtle | 0:9fcda3ae181c | 99 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 100 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 101 | line[i][j] = array[i][j]; |
Martyrtle | 0:9fcda3ae181c | 102 | } |
Martyrtle | 0:9fcda3ae181c | 103 | } |
Martyrtle | 0:9fcda3ae181c | 104 | } |
Martyrtle | 0:9fcda3ae181c | 105 | |
Martyrtle | 0:9fcda3ae181c | 106 | void object::fill(const char array[][13]) |
Martyrtle | 0:9fcda3ae181c | 107 | { |
Martyrtle | 0:9fcda3ae181c | 108 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 109 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 110 | line[i][j] = array[i][j]; |
Martyrtle | 0:9fcda3ae181c | 111 | } |
Martyrtle | 0:9fcda3ae181c | 112 | } |
Martyrtle | 0:9fcda3ae181c | 113 | } |
Martyrtle | 0:9fcda3ae181c | 114 | |
Martyrtle | 0:9fcda3ae181c | 115 | void object::fill(const char array[][25]) |
Martyrtle | 0:9fcda3ae181c | 116 | { |
Martyrtle | 0:9fcda3ae181c | 117 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 118 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 119 | line[i][j] = array[i][j]; |
Martyrtle | 0:9fcda3ae181c | 120 | } |
Martyrtle | 0:9fcda3ae181c | 121 | } |
Martyrtle | 0:9fcda3ae181c | 122 | } |
Martyrtle | 0:9fcda3ae181c | 123 | |
Martyrtle | 0:9fcda3ae181c | 124 | void object::draw(int x,int y) |
Martyrtle | 0:9fcda3ae181c | 125 | { |
Martyrtle | 0:9fcda3ae181c | 126 | for(int i=0; i < height; i++) { |
Martyrtle | 0:9fcda3ae181c | 127 | for(int j=0; j < width; j++) { |
Martyrtle | 0:9fcda3ae181c | 128 | switch(line[i][j]) { |
Martyrtle | 0:9fcda3ae181c | 129 | case 1: |
Martyrtle | 0:9fcda3ae181c | 130 | lcd.setPixel(x+j,y-i); |
Martyrtle | 0:9fcda3ae181c | 131 | break; |
Martyrtle | 0:9fcda3ae181c | 132 | case 2: |
Martyrtle | 0:9fcda3ae181c | 133 | lcd.clearPixel(x+j,y-i); |
Martyrtle | 0:9fcda3ae181c | 134 | break; |
Martyrtle | 0:9fcda3ae181c | 135 | default: |
Martyrtle | 0:9fcda3ae181c | 136 | break; |
Martyrtle | 0:9fcda3ae181c | 137 | } |
Martyrtle | 0:9fcda3ae181c | 138 | } |
Martyrtle | 0:9fcda3ae181c | 139 | } |
Martyrtle | 0:9fcda3ae181c | 140 | } |
Martyrtle | 0:9fcda3ae181c | 141 | |
Martyrtle | 0:9fcda3ae181c | 142 | void object::draw_screen(int x,int y, int layer) |
Martyrtle | 0:9fcda3ae181c | 143 | { |
Martyrtle | 0:9fcda3ae181c | 144 | for(int i=0; i < height; i++) { |
Martyrtle | 0:9fcda3ae181c | 145 | for(int j=0; j < width; j++) { |
Martyrtle | 0:9fcda3ae181c | 146 | switch(line[i][j]) { |
Martyrtle | 0:9fcda3ae181c | 147 | case 1: |
Martyrtle | 0:9fcda3ae181c | 148 | screen.set_pixel(x+j,y-i,layer); |
Martyrtle | 0:9fcda3ae181c | 149 | break; |
Martyrtle | 0:9fcda3ae181c | 150 | case 2: |
Martyrtle | 0:9fcda3ae181c | 151 | screen.clear_pixel(x+j,y-i,layer); |
Martyrtle | 0:9fcda3ae181c | 152 | break; |
Martyrtle | 0:9fcda3ae181c | 153 | default: |
Martyrtle | 0:9fcda3ae181c | 154 | break; |
Martyrtle | 0:9fcda3ae181c | 155 | } |
Martyrtle | 0:9fcda3ae181c | 156 | } |
Martyrtle | 0:9fcda3ae181c | 157 | } |
Martyrtle | 0:9fcda3ae181c | 158 | } |
Martyrtle | 0:9fcda3ae181c | 159 | |
Martyrtle | 0:9fcda3ae181c | 160 | void object::set(int _width,int _height) |
Martyrtle | 0:9fcda3ae181c | 161 | { |
Martyrtle | 0:9fcda3ae181c | 162 | width = _width; |
Martyrtle | 0:9fcda3ae181c | 163 | height = _height; |
Martyrtle | 0:9fcda3ae181c | 164 | line = new char*[height]; |
Martyrtle | 0:9fcda3ae181c | 165 | for(int i=0; i<height; i++) { |
Martyrtle | 0:9fcda3ae181c | 166 | line[i] = new char[width]; |
Martyrtle | 0:9fcda3ae181c | 167 | } |
Martyrtle | 0:9fcda3ae181c | 168 | } |
Martyrtle | 0:9fcda3ae181c | 169 | |
Martyrtle | 0:9fcda3ae181c | 170 | bool object::check_collision(int x, int y) |
Martyrtle | 0:9fcda3ae181c | 171 | { |
Martyrtle | 0:9fcda3ae181c | 172 | for(int j=0; j<width; j++) { |
Martyrtle | 0:9fcda3ae181c | 173 | if(screen.get_pixel(x+j,y-height,GAME)) { |
Martyrtle | 0:9fcda3ae181c | 174 | return 1; |
Martyrtle | 0:9fcda3ae181c | 175 | } |
Martyrtle | 0:9fcda3ae181c | 176 | } |
Martyrtle | 0:9fcda3ae181c | 177 | return 0; |
Martyrtle | 0:9fcda3ae181c | 178 | } |
Martyrtle | 0:9fcda3ae181c | 179 | |
Martyrtle | 0:9fcda3ae181c | 180 | void animation::draw(int x,int y) |
Martyrtle | 0:9fcda3ae181c | 181 | { |
Martyrtle | 0:9fcda3ae181c | 182 | switch(state) |
Martyrtle | 0:9fcda3ae181c | 183 | { |
Martyrtle | 0:9fcda3ae181c | 184 | case 0: |
Martyrtle | 0:9fcda3ae181c | 185 | state1.draw(x,y); |
Martyrtle | 0:9fcda3ae181c | 186 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 187 | { |
Martyrtle | 0:9fcda3ae181c | 188 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 189 | if(next == 0) |
Martyrtle | 0:9fcda3ae181c | 190 | { |
Martyrtle | 0:9fcda3ae181c | 191 | state = 1; |
Martyrtle | 0:9fcda3ae181c | 192 | break; |
Martyrtle | 0:9fcda3ae181c | 193 | } |
Martyrtle | 0:9fcda3ae181c | 194 | else |
Martyrtle | 0:9fcda3ae181c | 195 | { |
Martyrtle | 0:9fcda3ae181c | 196 | state = 2; |
Martyrtle | 0:9fcda3ae181c | 197 | break; |
Martyrtle | 0:9fcda3ae181c | 198 | } |
Martyrtle | 0:9fcda3ae181c | 199 | } |
Martyrtle | 0:9fcda3ae181c | 200 | else |
Martyrtle | 0:9fcda3ae181c | 201 | { |
Martyrtle | 0:9fcda3ae181c | 202 | counter++; |
Martyrtle | 0:9fcda3ae181c | 203 | break; |
Martyrtle | 0:9fcda3ae181c | 204 | } |
Martyrtle | 0:9fcda3ae181c | 205 | case 1: |
Martyrtle | 0:9fcda3ae181c | 206 | state2.draw(x,y); |
Martyrtle | 0:9fcda3ae181c | 207 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 208 | { |
Martyrtle | 0:9fcda3ae181c | 209 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 210 | state = 0; |
Martyrtle | 0:9fcda3ae181c | 211 | next = 1; |
Martyrtle | 0:9fcda3ae181c | 212 | break; |
Martyrtle | 0:9fcda3ae181c | 213 | } |
Martyrtle | 0:9fcda3ae181c | 214 | else |
Martyrtle | 0:9fcda3ae181c | 215 | { |
Martyrtle | 0:9fcda3ae181c | 216 | counter++; |
Martyrtle | 0:9fcda3ae181c | 217 | break; |
Martyrtle | 0:9fcda3ae181c | 218 | } |
Martyrtle | 0:9fcda3ae181c | 219 | case 2: |
Martyrtle | 0:9fcda3ae181c | 220 | state3.draw(x,y); |
Martyrtle | 0:9fcda3ae181c | 221 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 222 | { |
Martyrtle | 0:9fcda3ae181c | 223 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 224 | state = 0; |
Martyrtle | 0:9fcda3ae181c | 225 | next = 0; |
Martyrtle | 0:9fcda3ae181c | 226 | break; |
Martyrtle | 0:9fcda3ae181c | 227 | } |
Martyrtle | 0:9fcda3ae181c | 228 | else |
Martyrtle | 0:9fcda3ae181c | 229 | { |
Martyrtle | 0:9fcda3ae181c | 230 | counter++; |
Martyrtle | 0:9fcda3ae181c | 231 | break; |
Martyrtle | 0:9fcda3ae181c | 232 | } |
Martyrtle | 0:9fcda3ae181c | 233 | } |
Martyrtle | 0:9fcda3ae181c | 234 | } |
Martyrtle | 0:9fcda3ae181c | 235 | |
Martyrtle | 0:9fcda3ae181c | 236 | void animation::draw_screen(int x,int y, int layer) |
Martyrtle | 0:9fcda3ae181c | 237 | { |
Martyrtle | 0:9fcda3ae181c | 238 | switch(state) |
Martyrtle | 0:9fcda3ae181c | 239 | { |
Martyrtle | 0:9fcda3ae181c | 240 | case 0: |
Martyrtle | 0:9fcda3ae181c | 241 | state1.draw_screen(x,y,layer); |
Martyrtle | 0:9fcda3ae181c | 242 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 243 | { |
Martyrtle | 0:9fcda3ae181c | 244 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 245 | if(next == 0) |
Martyrtle | 0:9fcda3ae181c | 246 | { |
Martyrtle | 0:9fcda3ae181c | 247 | state = 1; |
Martyrtle | 0:9fcda3ae181c | 248 | break; |
Martyrtle | 0:9fcda3ae181c | 249 | } |
Martyrtle | 0:9fcda3ae181c | 250 | else |
Martyrtle | 0:9fcda3ae181c | 251 | { |
Martyrtle | 0:9fcda3ae181c | 252 | state = 2; |
Martyrtle | 0:9fcda3ae181c | 253 | break; |
Martyrtle | 0:9fcda3ae181c | 254 | } |
Martyrtle | 0:9fcda3ae181c | 255 | } |
Martyrtle | 0:9fcda3ae181c | 256 | else |
Martyrtle | 0:9fcda3ae181c | 257 | { |
Martyrtle | 0:9fcda3ae181c | 258 | counter++; |
Martyrtle | 0:9fcda3ae181c | 259 | break; |
Martyrtle | 0:9fcda3ae181c | 260 | } |
Martyrtle | 0:9fcda3ae181c | 261 | case 1: |
Martyrtle | 0:9fcda3ae181c | 262 | state2.draw_screen(x,y,layer); |
Martyrtle | 0:9fcda3ae181c | 263 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 264 | { |
Martyrtle | 0:9fcda3ae181c | 265 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 266 | state = 0; |
Martyrtle | 0:9fcda3ae181c | 267 | next = 1; |
Martyrtle | 0:9fcda3ae181c | 268 | break; |
Martyrtle | 0:9fcda3ae181c | 269 | } |
Martyrtle | 0:9fcda3ae181c | 270 | else |
Martyrtle | 0:9fcda3ae181c | 271 | { |
Martyrtle | 0:9fcda3ae181c | 272 | counter++; |
Martyrtle | 0:9fcda3ae181c | 273 | break; |
Martyrtle | 0:9fcda3ae181c | 274 | } |
Martyrtle | 0:9fcda3ae181c | 275 | case 2: |
Martyrtle | 0:9fcda3ae181c | 276 | state3.draw_screen(x,y,layer); |
Martyrtle | 0:9fcda3ae181c | 277 | if(counter == divider) |
Martyrtle | 0:9fcda3ae181c | 278 | { |
Martyrtle | 0:9fcda3ae181c | 279 | counter = 0; |
Martyrtle | 0:9fcda3ae181c | 280 | state = 0; |
Martyrtle | 0:9fcda3ae181c | 281 | next = 0; |
Martyrtle | 0:9fcda3ae181c | 282 | break; |
Martyrtle | 0:9fcda3ae181c | 283 | } |
Martyrtle | 0:9fcda3ae181c | 284 | else |
Martyrtle | 0:9fcda3ae181c | 285 | { |
Martyrtle | 0:9fcda3ae181c | 286 | counter++; |
Martyrtle | 0:9fcda3ae181c | 287 | break; |
Martyrtle | 0:9fcda3ae181c | 288 | } |
Martyrtle | 0:9fcda3ae181c | 289 | } |
Martyrtle | 0:9fcda3ae181c | 290 | } |
Martyrtle | 0:9fcda3ae181c | 291 | |
Martyrtle | 0:9fcda3ae181c | 292 | void Background::init() |
Martyrtle | 0:9fcda3ae181c | 293 | { |
Martyrtle | 0:9fcda3ae181c | 294 | for(int i=0; i<48; i++) { |
Martyrtle | 0:9fcda3ae181c | 295 | for(int j=0; j<84; j++) { |
Martyrtle | 0:9fcda3ae181c | 296 | wall[i][j]=0; |
Martyrtle | 0:9fcda3ae181c | 297 | } |
Martyrtle | 0:9fcda3ae181c | 298 | } |
Martyrtle | 0:9fcda3ae181c | 299 | //sets the mark_ver's |
Martyrtle | 0:9fcda3ae181c | 300 | mark_hor_obj.draw_screen(21,22,BG); |
Martyrtle | 0:9fcda3ae181c | 301 | mark_ver_obj.draw_screen(36,36,BG); |
Martyrtle | 0:9fcda3ae181c | 302 | mark_ver_obj.draw_screen(55,12,BG); |
Martyrtle | 0:9fcda3ae181c | 303 | mark_hor_obj.draw_screen(68,18,BG); |
Martyrtle | 0:9fcda3ae181c | 304 | mark_ver_obj.draw_screen(81,28,BG); |
Martyrtle | 0:9fcda3ae181c | 305 | //sets the mark_hor's |
Martyrtle | 0:9fcda3ae181c | 306 | mark_hor_obj.draw_screen(7,14,BG); |
Martyrtle | 0:9fcda3ae181c | 307 | mark_hor_obj.draw_screen(18,23,BG); |
Martyrtle | 0:9fcda3ae181c | 308 | mark_hor_obj.draw_screen(31,24,BG); |
Martyrtle | 0:9fcda3ae181c | 309 | mark_ver_obj.draw_screen(42,11,BG); |
Martyrtle | 0:9fcda3ae181c | 310 | mark_ver_obj.draw_screen(76,37,BG); |
Martyrtle | 0:9fcda3ae181c | 311 | //sets the rocks' |
Martyrtle | 0:9fcda3ae181c | 312 | rocks_obj.draw_screen(13,42,BG); |
Martyrtle | 0:9fcda3ae181c | 313 | rocks_obj.draw_screen(38,42,BG); |
Martyrtle | 0:9fcda3ae181c | 314 | rocks_obj.draw_screen(65,42,BG); |
Martyrtle | 0:9fcda3ae181c | 315 | } |
Martyrtle | 0:9fcda3ae181c | 316 | |
Martyrtle | 0:9fcda3ae181c | 317 | void Background::fill(char array[48][84][3]) |
Martyrtle | 0:9fcda3ae181c | 318 | { |
Martyrtle | 0:9fcda3ae181c | 319 | for(int i=0; i<48; i++) { |
Martyrtle | 0:9fcda3ae181c | 320 | for(int j=0; j<84; j++) { |
Martyrtle | 0:9fcda3ae181c | 321 | wall[i][j] = array[i][j][BG]; |
Martyrtle | 0:9fcda3ae181c | 322 | } |
Martyrtle | 0:9fcda3ae181c | 323 | } |
Martyrtle | 0:9fcda3ae181c | 324 | } |
Martyrtle | 0:9fcda3ae181c | 325 | |
Martyrtle | 0:9fcda3ae181c | 326 | void Background::draw() |
Martyrtle | 0:9fcda3ae181c | 327 | { |
Martyrtle | 0:9fcda3ae181c | 328 | int x; |
Martyrtle | 0:9fcda3ae181c | 329 | for(int i=83; i>-1; i--) { |
Martyrtle | 0:9fcda3ae181c | 330 | for(int j=0; j<48; j++) { |
Martyrtle | 0:9fcda3ae181c | 331 | switch(wall[j][i]) { |
Martyrtle | 0:9fcda3ae181c | 332 | case 1: |
Martyrtle | 0:9fcda3ae181c | 333 | if((i-counter)>=0) { |
Martyrtle | 0:9fcda3ae181c | 334 | x=i-counter; |
Martyrtle | 0:9fcda3ae181c | 335 | } else { |
Martyrtle | 0:9fcda3ae181c | 336 | x=84+(i-counter); |
Martyrtle | 0:9fcda3ae181c | 337 | } |
Martyrtle | 0:9fcda3ae181c | 338 | lcd.setPixel(x,j); |
Martyrtle | 0:9fcda3ae181c | 339 | break; |
Martyrtle | 0:9fcda3ae181c | 340 | case 2: |
Martyrtle | 0:9fcda3ae181c | 341 | if((i-counter)>=0) { |
Martyrtle | 0:9fcda3ae181c | 342 | x=i-counter; |
Martyrtle | 0:9fcda3ae181c | 343 | } else { |
Martyrtle | 0:9fcda3ae181c | 344 | x=84+(i-counter); |
Martyrtle | 0:9fcda3ae181c | 345 | } |
Martyrtle | 0:9fcda3ae181c | 346 | lcd.clearPixel(x,j); |
Martyrtle | 0:9fcda3ae181c | 347 | break; |
Martyrtle | 0:9fcda3ae181c | 348 | default: |
Martyrtle | 0:9fcda3ae181c | 349 | break; |
Martyrtle | 0:9fcda3ae181c | 350 | } |
Martyrtle | 0:9fcda3ae181c | 351 | } |
Martyrtle | 0:9fcda3ae181c | 352 | } |
Martyrtle | 0:9fcda3ae181c | 353 | counter++; |
Martyrtle | 0:9fcda3ae181c | 354 | if(counter>84) { |
Martyrtle | 0:9fcda3ae181c | 355 | counter=0; |
Martyrtle | 0:9fcda3ae181c | 356 | } |
Martyrtle | 0:9fcda3ae181c | 357 | } |
Martyrtle | 0:9fcda3ae181c | 358 | |
Martyrtle | 0:9fcda3ae181c | 359 | void Background::draw_screen(int layer) |
Martyrtle | 0:9fcda3ae181c | 360 | { |
Martyrtle | 0:9fcda3ae181c | 361 | int x; |
Martyrtle | 0:9fcda3ae181c | 362 | for(int i=83; i>-1; i--) { |
Martyrtle | 0:9fcda3ae181c | 363 | for(int j=0; j<48; j++) { |
Martyrtle | 0:9fcda3ae181c | 364 | switch(wall[j][i]) { |
Martyrtle | 0:9fcda3ae181c | 365 | case 1: |
Martyrtle | 0:9fcda3ae181c | 366 | if((i-counter)>=0) { |
Martyrtle | 0:9fcda3ae181c | 367 | x=i-counter; |
Martyrtle | 0:9fcda3ae181c | 368 | } else { |
Martyrtle | 0:9fcda3ae181c | 369 | x=84+(i-counter); |
Martyrtle | 0:9fcda3ae181c | 370 | } |
Martyrtle | 0:9fcda3ae181c | 371 | screen.set_pixel(x,j,layer); |
Martyrtle | 0:9fcda3ae181c | 372 | break; |
Martyrtle | 0:9fcda3ae181c | 373 | case 2: |
Martyrtle | 0:9fcda3ae181c | 374 | if((i-counter)>=0) { |
Martyrtle | 0:9fcda3ae181c | 375 | x=i-counter; |
Martyrtle | 0:9fcda3ae181c | 376 | } else { |
Martyrtle | 0:9fcda3ae181c | 377 | x=84+(i-counter); |
Martyrtle | 0:9fcda3ae181c | 378 | } |
Martyrtle | 0:9fcda3ae181c | 379 | screen.clear_pixel(x,j,layer); |
Martyrtle | 0:9fcda3ae181c | 380 | break; |
Martyrtle | 0:9fcda3ae181c | 381 | default: |
Martyrtle | 0:9fcda3ae181c | 382 | break; |
Martyrtle | 0:9fcda3ae181c | 383 | } |
Martyrtle | 0:9fcda3ae181c | 384 | } |
Martyrtle | 0:9fcda3ae181c | 385 | } |
Martyrtle | 0:9fcda3ae181c | 386 | counter++; |
Martyrtle | 0:9fcda3ae181c | 387 | if(counter>84) { |
Martyrtle | 0:9fcda3ae181c | 388 | counter=0; |
Martyrtle | 0:9fcda3ae181c | 389 | } |
Martyrtle | 0:9fcda3ae181c | 390 | } |