2009-07-26 12 views

Respuesta

19

Con SDL que tiene algunas opciones.

  1. girar todas sus sprites con antelación (antes de hacer todas las rotaciones posibles) y hacerlos como lo haría con cualquier otro sprite. Este enfoque es rápido, pero usa más memoria y más sprites. Como señaló @Nick Wiggle, RotSprite es una gran herramienta para generar transforaciones de sprites.

  2. Use algo como SDL_gfx para hacer rotación/acercamiento en tiempo real. (No recomendado, muy lento)

  3. Use SDL en modo OpenGL y renderice sus sprites a primitivos, aplicando rotación a los primitivos.

La opción 3 es probablemente su mejor opción porque obtiene todas las ventajas de usar OpenGL. Depende de usted cómo querer hacerlo. También existe la posibilidad de que pueda cargar sus sprites, realizar todos los cálculos de rotación con SDL_gfx y luego guardar las versiones giradas en una SDL_Surface en la memoria.

EDIT: En respuesta a su comentario, le recomiendo que revise los documentos de SDL de Lazyfoo. Specifically, this one about rotation. También hay un OpenGl function, glRotatef, que puede ser útil en su caso. Una búsqueda rápida devolvió this little tidbit que también podría ser útil.

+0

Creo que me gustaría explorar la ruta OpenGL, sin embargo, nunca he trabajado con ella. ¿Tiene alguna recomendación en un sitio web para comenzar con un tutorial de rotación? – Justen

+0

He visto algún código de NeHe, y esto parece increíblemente tedioso para configurar una rotación en una imagen ... No lo entiendo del todo, ¿hay alguna ayuda sobre este tema? – Justen

+0

No he trabajado/no he trabajado con OpenGL en mucho tiempo. Su pregunta de rotación específica de OpenGL puede ser un buen tema para una nueva pregunta. Seguramente obtendrás una respuesta mucho mejor de la que puedo dar. –

2

Se puede utilizar una biblioteca como SDL_gfx

0
SDL_RenderCopyEx() 

tiene argumentos adicionales para la rotación, volteo y el centro de rotación.

Cuestiones relacionadas