Attualmente sto scrivendo un gioco di immensa raffinatezza e astuzia, che ti riempirà di meraviglia e vinto- oh, OK, è il 15 puzzle, e mi sto solo familiarizzando con SDL.Come sincronizzare i salti di pagina con ritraccia verticale in un'applicazione SDL con finestra?
Sono in esecuzione in modalità finestra e utilizzo di SDL_Flip come aggiornamento generale della pagina, poiché esegue automaticamente la mappatura su un SDL_UpdateRect dell'intera finestra in modalità finestra. Non l'approccio ottimale, ma dato che questo è solo il 15 puzzle ...
In ogni caso, i movimenti delle tessere stanno accadendo a velocità ridicola. IOW, SDL_Flip in modalità finestra non include alcuna sincronizzazione con i ritraccia verticali. Sto lavorando su ATM di Windows XP, ma presumo che questo sia un comportamento corretto per SDL e si verifichi anche su altre piattaforme.
Passare all'utilizzo di SDL_UpdateRect ovviamente non cambierà nulla. Presumibilmente, ho bisogno di implementare la logica del ritardo nel mio codice. Ma un semplice timer basato sull'orologio potrebbe comportare aggiornamenti che si verificano quando la finestra è semirotta, causando distorsioni visibili (ho dimenticato il nome tecnico).
EDIT Questo problema è noto come "strappo".
Quindi, in un gioco in modalità finestra in SDL, come faccio a sincronizzare i page-flip con il ritraccia verticale?
EDIT Ho visto diverse affermazioni, durante la ricerca di una soluzione, che è impossibile sincronizzare i salti di pagina con la ritraccia verticale in un'applicazione con finestre. Su Windows, almeno, questo è semplicemente falso - ho scritto giochi (con cui intendo cose di livello simile al 15-puzzle) che lo fanno. Una volta ho sprecato un po 'di tempo a giocare con Dark Basic e Dark GDK - sia basato su DirectX che su entrambe le pagine sincronizzate al salto verticale in modalità finestra.
Accettato per chiudere questa vecchia domanda, ma sono ancora disponibile a cambiare se viene visualizzata una risposta definitiva. – Steve314