diff --git a/demos/tetris/grboard.h b/demos/tetris/grboard.h index b4d39bf..f83de4e 100644 --- a/demos/tetris/grboard.h +++ b/demos/tetris/grboard.h @@ -206,13 +206,13 @@ void gr_erasepiece_unmarked(sprite *p) { px += STARTBOARD_X; py += STARTBOARD_Y; - + for(byte t=0; t<4; t++) { - int x = px + data->offset_x; - int y = py + data->offset_y; + int x = px; byte x1 = data->offset_x; x+= (int) x1; + int y = py; byte y1 = data->offset_y; y+= (int) y1; - int cx = zx + data->offset_x; - int cy = zy + data->offset_y; + int cx = p->x; cx += (int) x1; + int cy = p->y; cy += (int) y1; data++; diff --git a/demos/tetris/tetris.c b/demos/tetris/tetris.c index 7bc86a6..5fa1206 100644 --- a/demos/tetris/tetris.c +++ b/demos/tetris/tetris.c @@ -152,13 +152,13 @@ void handle_player_input() { if(collides(&new_pos)) { break; } - gr_erasepiece(&player); - gr_drawpiece(&new_pos); + // gr_erasepiece(&player); + // gr_drawpiece(&new_pos); // flicker-free version - // ck_markpiece(&new_pos); - // gr_erasepiece_unmarked(&player); - // gr_drawpiece(&new_pos); + ck_markpiece(&new_pos); + gr_erasepiece_unmarked(&player); + gr_drawpiece(&new_pos); ck_drawpiece(&new_pos); sprite_copy(&player,&new_pos); @@ -168,13 +168,13 @@ void handle_player_input() { } if(allowed == 1) { - gr_erasepiece(&player); - gr_drawpiece(&new_pos); + // gr_erasepiece(&player); + // gr_drawpiece(&new_pos); // flicker-free version - // ck_markpiece(&new_pos); - // gr_erasepiece_unmarked(&player); - // gr_drawpiece(&new_pos); + ck_markpiece(&new_pos); + gr_erasepiece_unmarked(&player); + gr_drawpiece(&new_pos); sprite_copy(&player, &new_pos); } @@ -207,13 +207,13 @@ void gameLoop() { } else { // automatic drop does not collide, simply draw it - gr_erasepiece(&player); // erase and draw are as close as possible - gr_drawpiece(&new_pos); + // gr_erasepiece(&player); // erase and draw are as close as possible + // gr_drawpiece(&new_pos); // flicker-free version - // ck_markpiece(&new_pos); - // gr_erasepiece_unmarked(&player); - // gr_drawpiece(&new_pos); + ck_markpiece(&new_pos); + gr_erasepiece_unmarked(&player); + gr_drawpiece(&new_pos); sprite_copy(&player, &new_pos); ck_drawpiece(&player);