mirror of
https://github.com/nippur72/apple1-videocard-lib.git
synced 2024-06-10 11:29:33 +00:00
use flicker free drawing piece technique
This commit is contained in:
parent
07906ea3c1
commit
b8bf064b18
|
@ -206,13 +206,13 @@ void gr_erasepiece_unmarked(sprite *p) {
|
||||||
|
|
||||||
px += STARTBOARD_X;
|
px += STARTBOARD_X;
|
||||||
py += STARTBOARD_Y;
|
py += STARTBOARD_Y;
|
||||||
|
|
||||||
for(byte t=0; t<4; t++) {
|
for(byte t=0; t<4; t++) {
|
||||||
int x = px + data->offset_x;
|
int x = px; byte x1 = data->offset_x; x+= (int) x1;
|
||||||
int y = py + data->offset_y;
|
int y = py; byte y1 = data->offset_y; y+= (int) y1;
|
||||||
|
|
||||||
int cx = zx + data->offset_x;
|
int cx = p->x; cx += (int) x1;
|
||||||
int cy = zy + data->offset_y;
|
int cy = p->y; cy += (int) y1;
|
||||||
|
|
||||||
data++;
|
data++;
|
||||||
|
|
||||||
|
|
|
@ -152,13 +152,13 @@ void handle_player_input() {
|
||||||
if(collides(&new_pos)) {
|
if(collides(&new_pos)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gr_erasepiece(&player);
|
// gr_erasepiece(&player);
|
||||||
gr_drawpiece(&new_pos);
|
// gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
// flicker-free version
|
// flicker-free version
|
||||||
// ck_markpiece(&new_pos);
|
ck_markpiece(&new_pos);
|
||||||
// gr_erasepiece_unmarked(&player);
|
gr_erasepiece_unmarked(&player);
|
||||||
// gr_drawpiece(&new_pos);
|
gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
ck_drawpiece(&new_pos);
|
ck_drawpiece(&new_pos);
|
||||||
sprite_copy(&player,&new_pos);
|
sprite_copy(&player,&new_pos);
|
||||||
|
@ -168,13 +168,13 @@ void handle_player_input() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(allowed == 1) {
|
if(allowed == 1) {
|
||||||
gr_erasepiece(&player);
|
// gr_erasepiece(&player);
|
||||||
gr_drawpiece(&new_pos);
|
// gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
// flicker-free version
|
// flicker-free version
|
||||||
// ck_markpiece(&new_pos);
|
ck_markpiece(&new_pos);
|
||||||
// gr_erasepiece_unmarked(&player);
|
gr_erasepiece_unmarked(&player);
|
||||||
// gr_drawpiece(&new_pos);
|
gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
sprite_copy(&player, &new_pos);
|
sprite_copy(&player, &new_pos);
|
||||||
}
|
}
|
||||||
|
@ -207,13 +207,13 @@ void gameLoop() {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// automatic drop does not collide, simply draw it
|
// automatic drop does not collide, simply draw it
|
||||||
gr_erasepiece(&player); // erase and draw are as close as possible
|
// gr_erasepiece(&player); // erase and draw are as close as possible
|
||||||
gr_drawpiece(&new_pos);
|
// gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
// flicker-free version
|
// flicker-free version
|
||||||
// ck_markpiece(&new_pos);
|
ck_markpiece(&new_pos);
|
||||||
// gr_erasepiece_unmarked(&player);
|
gr_erasepiece_unmarked(&player);
|
||||||
// gr_drawpiece(&new_pos);
|
gr_drawpiece(&new_pos);
|
||||||
|
|
||||||
sprite_copy(&player, &new_pos);
|
sprite_copy(&player, &new_pos);
|
||||||
ck_drawpiece(&player);
|
ck_drawpiece(&player);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user