questo codice stampa una sorta di meteorite formato da 3x3 caratteri, che avanza verso sinistra e, arrivato in fondo, riparte da destra.
I problemi sono 2:
1. Quando deve cancellare il vecchio meteorite con gli spazi (" ") non rimuove completamente tutti i pixel, ma invece essi ritardano a scomparire mettendoci anche qualche secondo, svanendo uno per uno poco per volta. Sapete come risolvere?
2. Problema sostanzialmente opposto: quando stampo i vari caratteri del meteorite, non tutti i pixel compaino! Inoltre a volte capita che compaiono in ritardo. Sapete come risolvere?
La somma di questi due problemi crea un bruttussimo effetto scia...
Grazie!
CODICE
const char m1[3] = {201,205,187}; // meteor chars
const char m2[3] = {186,177,186};
const char m3[3] = {200,205,188};
console->cursorX = 46;
console->cursorY = 3;
printf("\x1b[37m");
while (1)
{
printf(m1);
console->cursorX -= 3;
console->cursorY++;
printf(m2);
console->cursorX -= 3;
console->cursorY++;
printf(m3);
console->cursorX -= 3;
console->cursorY -= 2;
svcSleepThread(100000000);
printf(" "); // <- 3 spazi
console->cursorX -= 3;
console->cursorY++;
printf(" "); // <- 3 spazi
console->cursorX -= 3;
console->cursorY++;
printf(" "); // <- 3 spazi
console->cursorX -= 4;
console->cursorY -= 2;
if (console->cursorX == 0)
{
console->cursorX = 46;
}
}
const char m2[3] = {186,177,186};
const char m3[3] = {200,205,188};
console->cursorX = 46;
console->cursorY = 3;
printf("\x1b[37m");
while (1)
{
printf(m1);
console->cursorX -= 3;
console->cursorY++;
printf(m2);
console->cursorX -= 3;
console->cursorY++;
printf(m3);
console->cursorX -= 3;
console->cursorY -= 2;
svcSleepThread(100000000);
printf(" "); // <- 3 spazi
console->cursorX -= 3;
console->cursorY++;
printf(" "); // <- 3 spazi
console->cursorX -= 3;
console->cursorY++;
printf(" "); // <- 3 spazi
console->cursorX -= 4;
console->cursorY -= 2;
if (console->cursorX == 0)
{
console->cursorX = 46;
}
}