An easy way to make bitmaps to be drawn on a Nokia N5110 lcd display

Dependencies:   N5110_fordrawings

Dependents:   DCGame el14m2l_Dungeon_Crawler_Game

Committer:
Martyrtle
Date:
Thu May 05 14:26:07 2016 +0000
Revision:
0:9fcda3ae181c
Done

Who changed what in which revision?

UserRevisionLine numberNew 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 }