Pixel ritardati! |
Benvenuto Visitatore ( Log In | Registrati )
Pixel ritardati! |
Friday 15 January 2016 - 19:19
Messaggio
#1
|
|
Special User 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
|
|
|
Friday 15 January 2016 - 20:03
Messaggio
#2
|
|
Figurati 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! « |
|
|
Friday 15 January 2016 - 20:13
Messaggio
#3
|
|
Special User 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 |
Indizio: in che posizione stampi il carattere di spazio dopo lo sleep del thread? In alto a sinistra -------------------- Mi sono rotto di videogiocare
|
|
|
Friday 15 January 2016 - 20:23
Messaggio
#4
|
|
Figurati 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! « |
|
|
Friday 15 January 2016 - 20:28
Messaggio
#5
|
|
Special User 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 |
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
|
|
|
Friday 15 January 2016 - 20:29
Messaggio
#6
|
|
Boss GBA/NDS 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!
|
|
|
Friday 15 January 2016 - 20:35
Messaggio
#7
|
|
Special User 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 |
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 Messaggio modificato da Ciozun il Friday 15 January 2016 - 20:47 -------------------- Mi sono rotto di videogiocare
|
|
|
Friday 15 January 2016 - 20:52
Messaggio
#8
|
|
Boss GBA/NDS Gruppo: Membri Messaggi: 323 Iscritto il: Sun 12 November 2006 - 14:37 Utente Nr.: 14.506 Feedback: 0 (0%) |
Bravissimo
Se sviluppi un bel homebrew poi ce lo fai provare... -------------------- Arrows in the knee will not allowed in this site!
|
|
|
Friday 15 January 2016 - 21:00
Messaggio
#9
|
|
Special User 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 |
Bravissimo Se sviluppi un bel homebrew poi ce lo fai provare... Certo certo -------------------- Mi sono rotto di videogiocare
|
|
|
Versione Lo-Fi | Oggi è il: Thu 28 March 2024- 20:13 |