IPB

Benvenuto Visitatore ( Log In | Registrati )

Seguici su:    
 
Reply to this topicStart new topic
> Pixel ritardati!
Ciozun
messaggio Friday 15 January 2016 - 19:19
Messaggio #1

Special User
Gruppo icone

Gruppo: Membri
Messaggi: 106
Iscritto il: Sun 26 October 2014 - 22:19
Utente Nr.: 62.702
Feedback: 0 (0%)

Codice Amico 3DS:
2208-5264-9252



Ciao (di nuovo),

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;
         }
     }


Messaggio modificato da Ciozun il Friday 15 January 2016 - 20:29


--------------------
Mi sono rotto di videogiocare
 Go to the top of the page
 
+Quote Post
Prace
messaggio Friday 15 January 2016 - 20:03
Messaggio #2

Figurati
Gruppo icone

Gruppo: Moderatori
Messaggi: 2.939
Iscritto il: Sat 16 June 2007 - 10:37
Da: Piacenza
Utente Nr.: 18.799
Feedback: 3 (100%)

Codice Amico 3DS:
4382 - 2012 - 8754
Nintendo Network ID:
Prace86



Indizio: in che posizione stampi il carattere di spazio dopo lo sleep del thread?


--------------------


Pokemon Camp Genova & Torino: 1° Classificato Categoria Master
Babbo Contest™ 2011 Winner!

» Clicca per leggere lo Spoiler! «

Invito tutti gli utenti vittima dei miei soprusi di medievale efferatezza ad utilizzare la seguente frase nei post/PM qualora la punizione sancita o il tono utilizzato non fosse di Vs. gradimento. Fermiamo il genocidio delle vittime dei mod che si accaniscono contro i deboli sulla base di "presupposti poco fondati":

CITAZIONE
Dopo le minacce ingiustificate e il modo supponente con i quale sono state fatte, ecco le offese sul piano personale e gli sfottò. Invito i mod. più anziani a passarsi una mano sulla coscienza e a riflettere: non si modera così un forum con una storia come gbarl.it - Prace ha montato e sta continuando a montare un caso partendo da presupposti poco fondati


In imperitura memoria del pentasegnalato E.Fire,
Evangelista del mezzo letterario come unico vero strumento di intrattenimento universale,
Erede spirituale del carattere mobile.

14 Gen 2016
 Go to the top of the page
 
+Quote Post
Ciozun
messaggio Friday 15 January 2016 - 20:13
Messaggio #3

Special User
Gruppo icone

Gruppo: Membri
Messaggi: 106
Iscritto il: Sun 26 October 2014 - 22:19
Utente Nr.: 62.702
Feedback: 0 (0%)

Codice Amico 3DS:
2208-5264-9252



CITAZIONE (Prace @ Friday 15 January 2016 - 20:03) *
Indizio: in che posizione stampi il carattere di spazio dopo lo sleep del thread?


In alto a sinistra


--------------------
Mi sono rotto di videogiocare
 Go to the top of the page
 
+Quote Post
Prace
messaggio Friday 15 January 2016 - 20:23
Messaggio #4

Figurati
Gruppo icone

Gruppo: Moderatori
Messaggi: 2.939
Iscritto il: Sat 16 June 2007 - 10:37
Da: Piacenza
Utente Nr.: 18.799
Feedback: 3 (100%)

Codice Amico 3DS:
4382 - 2012 - 8754
Nintendo Network ID:
Prace86



Ah OK, quindi sono tre spazi quelli tra gli apici? Da cellulare mi sembrava uno


--------------------


Pokemon Camp Genova & Torino: 1° Classificato Categoria Master
Babbo Contest™ 2011 Winner!

» Clicca per leggere lo Spoiler! «

Invito tutti gli utenti vittima dei miei soprusi di medievale efferatezza ad utilizzare la seguente frase nei post/PM qualora la punizione sancita o il tono utilizzato non fosse di Vs. gradimento. Fermiamo il genocidio delle vittime dei mod che si accaniscono contro i deboli sulla base di "presupposti poco fondati":

CITAZIONE
Dopo le minacce ingiustificate e il modo supponente con i quale sono state fatte, ecco le offese sul piano personale e gli sfottò. Invito i mod. più anziani a passarsi una mano sulla coscienza e a riflettere: non si modera così un forum con una storia come gbarl.it - Prace ha montato e sta continuando a montare un caso partendo da presupposti poco fondati


In imperitura memoria del pentasegnalato E.Fire,
Evangelista del mezzo letterario come unico vero strumento di intrattenimento universale,
Erede spirituale del carattere mobile.

14 Gen 2016
 Go to the top of the page
 
+Quote Post
Ciozun
messaggio Friday 15 January 2016 - 20:28
Messaggio #5

Special User
Gruppo icone

Gruppo: Membri
Messaggi: 106
Iscritto il: Sun 26 October 2014 - 22:19
Utente Nr.: 62.702
Feedback: 0 (0%)

Codice Amico 3DS:
2208-5264-9252



CITAZIONE (Prace @ Friday 15 January 2016 - 20:23) *
Ah OK, quindi sono tre spazi quelli tra gli apici? Da cellulare mi sembrava uno


Si sono 3 (dovevo scrivercelo).


--------------------
Mi sono rotto di videogiocare
 Go to the top of the page
 
+Quote Post
bombottino
messaggio Friday 15 January 2016 - 20:29
Messaggio #6

Boss GBA/NDS
Gruppo icone

Gruppo: Membri
Messaggi: 323
Iscritto il: Sun 12 November 2006 - 14:37
Utente Nr.: 14.506
Feedback: 0 (0%)




Secondo me è un problema di aggiornamento del display (flush).
Non conosco la programmazione 3ds ma credo sia gfxFlushBuffers.


--------------------
Arrows in the knee will not allowed in this site!
 Go to the top of the page
 
+Quote Post
Ciozun
messaggio Friday 15 January 2016 - 20:35
Messaggio #7

Special User
Gruppo icone

Gruppo: Membri
Messaggi: 106
Iscritto il: Sun 26 October 2014 - 22:19
Utente Nr.: 62.702
Feedback: 0 (0%)

Codice Amico 3DS:
2208-5264-9252



CITAZIONE (bombottino @ Friday 15 January 2016 - 20:29) *
Secondo me è un problema di aggiornamento del display (flush).
Non conosco la programmazione 3ds ma credo sia gfxFlushBuffers.


Il fatto è che io l'ho messo già nel programma principale (nel ciclo per l'esattezza). Questo qui è il codice di un sottoprogramma.
Non so se mettendolo due volte potrebbero succedere "disastri".
Comunque provo a metterlo anche in questo codice e vedo come va.

-ADD-

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;
          
        gfxFlushBuffers();
        gfxSwapBuffers();
        gspWaitForVBlank();
      
        svcSleepThread(100000000);
      
        printf("   ");
        console->cursorX -= 3;
        console->cursorY++;
        printf("   ");
        console->cursorX -= 3;
        console->cursorY++;
        printf("   ");
        console->cursorX -= 3;
        console->cursorY -= 2;
          
        gfxFlushBuffers();
        gfxSwapBuffers();
        gspWaitForVBlank();
      
        console->cursorX--;
      
        if (console->cursorX == 0)
        {
            console->cursorX = 46;
        }
    }


Così va perfettamente! Grazie mille biggrin.gif

Messaggio modificato da Ciozun il Friday 15 January 2016 - 20:47


--------------------
Mi sono rotto di videogiocare
 Go to the top of the page
 
+Quote Post
bombottino
messaggio Friday 15 January 2016 - 20:52
Messaggio #8

Boss GBA/NDS
Gruppo icone

Gruppo: Membri
Messaggi: 323
Iscritto il: Sun 12 November 2006 - 14:37
Utente Nr.: 14.506
Feedback: 0 (0%)




Bravissimo thumbup.gif
Se sviluppi un bel homebrew poi ce lo fai provare... wink.gif


--------------------
Arrows in the knee will not allowed in this site!
 Go to the top of the page
 
+Quote Post
Ciozun
messaggio Friday 15 January 2016 - 21:00
Messaggio #9

Special User
Gruppo icone

Gruppo: Membri
Messaggi: 106
Iscritto il: Sun 26 October 2014 - 22:19
Utente Nr.: 62.702
Feedback: 0 (0%)

Codice Amico 3DS:
2208-5264-9252



CITAZIONE (bombottino @ Friday 15 January 2016 - 20:52) *
Bravissimo thumbup.gif
Se sviluppi un bel homebrew poi ce lo fai provare... wink.gif


Certo certo wink.gif


--------------------
Mi sono rotto di videogiocare
 Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utenti stanno leggendo questa discussione (1 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


RSS Versione Lo-Fi Oggi è il: Thu 28 March 2024- 20:13

.: GBArl.it :. Copyright © 2003-2020, All Rights Reserved.
Loghi, documenti e immagini contenuti in questo Sito appartengono ai rispettivi proprietari,
e sono resi pubblici sotto licenza Creative Commons

Creative Commons License
.::.