changed pixels considered in showCanvas

This commit is contained in:
Wolfgang Hottgenroth 2024-03-02 18:49:44 +01:00
parent 0a474f59d8
commit e73f486116

View File

@ -50,10 +50,18 @@ void showCanvas() {
for (uint8_t y = 0; y < CANVAS_HEIGHT; y++) { for (uint8_t y = 0; y < CANVAS_HEIGHT; y++) {
for (uint8_t x = 0; x < CANVAS_WIDTH; x++) { for (uint8_t x = 0; x < CANVAS_WIDTH; x++) {
printf("%02x ", canvas[x][y]); printf("%02x ", canvas[x][y]);
canvas[x][y] &= ~0x80;
} }
printf("\n"); printf("\n");
} }
printf("Changed pixels: ");
for (uint8_t y = 0; y < CANVAS_HEIGHT; y++) {
for (uint8_t x = 0; x < CANVAS_WIDTH; x++) {
if (canvas[x][y] & 0x80) {
canvas[x][y] &= ~0x80;
printf("0x%02x,0x%02x=0x%02x ", x, y, canvas[x][y]);
}
}
}
printf("\n"); printf("\n");
} }
@ -82,33 +90,33 @@ void initObject(t_shape shape, uint8_t x, uint8_t y) {
} }
void drawObject() { void drawObject() {
// the bit7 set marks changed pixels
if (object.initial == 0) { if (object.initial == 0) {
// wipe // wipe
switch (object.shape) { switch (object.shape) {
case e_O: case e_O:
switch (object.last_rotation) { switch (object.last_rotation) {
case 0: case 0:
canvas[object.last_x][object.last_y] = 0; canvas[object.last_x][object.last_y] = 0 | 0x80;
canvas[object.last_x][object.last_y+1] = 0; canvas[object.last_x][object.last_y+1] = 0 | 0x80;
canvas[object.last_x+1][object.last_y] = 0; canvas[object.last_x+1][object.last_y] = 0 | 0x80;
canvas[object.last_x+1][object.last_y+1] = 0; canvas[object.last_x+1][object.last_y+1] = 0 | 0x80;
break; break;
} }
break; break;
case e_I: case e_I:
switch (object.last_rotation) { switch (object.last_rotation) {
case 0: case 0:
canvas[object.last_x][object.last_y] = 0; canvas[object.last_x][object.last_y] = 0 | 0x80;
canvas[object.last_x][object.last_y+1] = 0; canvas[object.last_x][object.last_y+1] = 0 | 0x80;
canvas[object.last_x][object.last_y+2] = 0; canvas[object.last_x][object.last_y+2] = 0 | 0x80;
canvas[object.last_x][object.last_y+3] = 0; canvas[object.last_x][object.last_y+3] = 0 | 0x80;
break; break;
} }
break; break;
} }
} }
// draw // draw
// the bit7 set marks changed pixels
switch (object.shape) { switch (object.shape) {
case e_O: case e_O:
switch (object.rotation) { switch (object.rotation) {