2009-07-26 12 views

risposta

19

Con SDL avete alcune scelte.

  1. Ruota tutti gli sprite in anticipo (pre-renderizza tutte le possibili rotazioni) e rendili come faresti con qualsiasi altro folletto. Questo approccio è veloce, ma utilizza più memoria e più folletti. Come sottolineato da @Nick Wiggle, RotSprite è un ottimo strumento per generare transoformazioni di sprite.

  2. Utilizzare qualcosa come SDL_gfx per eseguire rotazione/zoom in tempo reale. (Non consigliato, molto lento)

  3. Utilizzare SDL in modalità OpenGL e rendere gli sprite primitivi, applicando la rotazione ai primitivi.

L'opzione 3 è probabilmente la soluzione migliore perché ottieni tutti i vantaggi dell'utilizzo di OpenGL. Sta a te decidere come si vuole farlo. È anche possibile caricare gli sprite, eseguire tutti i calcoli di rotazione con SDL_gfx e quindi salvare le versioni ruotate su una superficie SDL_Surface in memoria.

MODIFICA: in risposta al tuo commento, consiglierei di leggere le lezioni di Lazyfoo su SDL. Specifically, this one about rotation. C'è anche un OpenGl function, glRotatef, che può essere utile nel tuo caso. Una ricerca rapida ha riportato this little tidbit che potrebbe essere utile.

+0

Penso che mi piacerebbe esplorare la rotta OpenGL, tuttavia, non ho mai lavorato con esso. Hai qualche consiglio su un sito web per iniziare un tutorial per la rotazione? – Justen

+0

Ho visto un codice da NeHe, e questo mi sembra incredibilmente noioso per impostare una rotazione su un'immagine ... Non riesco a capirlo affatto, alcun aiuto su questo argomento? – Justen

+0

Non ho/non ho lavorato con OpenGL da molto tempo. La tua domanda di rotazione specifica per OpenGL potrebbe essere un buon argomento per una nuova domanda. Sei destinato ad avere una risposta molto migliore di quella che posso dare. –

2

È possibile utilizzare una libreria come SDL_gfx

0
SDL_RenderCopyEx() 

ha argomenti aggiuntivi per rotazione, rotazione e il centro di rotazione.

Problemi correlati