Chip... la risposta l'hai postata...
Ogni volta che disegni a video uno sprite devi:
1) Salvare il contenuto del rettangolo sottostante
2) Disegnare lo sprite
Al successivo movimento dovrai:
1) Ripristinare lo sfondo prima di muovere lo sprite
2) Procedere come sopra...
L'implementazione è banale(pseudocodice):
byte buffer_precedente[];
void DisegnaSprite(x,y)
{
salva(x,y,buffer_precedente);
disegna(x,y,sprite);
}
void Restore(x,y)
{
disegna(x,y,buffer_precedente);
}
e nella main qualcosa del tipo:
sprite_x,sprite_y;
ciclo
{
...
Restore(sprite_x,sprite_y);
sprite_x++;sprite_y++;
DisegnaSprite(x,y);
}
Insomma, ripristinare lo sfondo prima di muovere lo sprite... occhio alla prima passata, magari fai una prelettura dello sfondo in modo da riempire da subito il buffer_precedente...
Ciaociao
Venite a visitarci qui:
http://www.bottomap.co