2009-07-26 8 views

Répondre

19

Avec SDL vous avez quelques choix.

  1. Faire tourner tous vos sprites à l'avance (pré-rendu toutes les rotations possibles) et les rendre comme vous le feriez pour tout autre sprite. Cette approche est rapide, mais utilise plus de mémoire et plus de sprites. Comme @Nick Wiggle a souligné, RotSprite est un excellent outil pour générer des transoformations sprite.

  2. Utilisez quelque chose comme SDL_gfx pour effectuer une rotation/un zoom en temps réel. (Non recommandé, très lent)

  3. Utilisez SDL en mode OpenGL et rendez vos sprites aux primitives, en appliquant une rotation aux primitives.

L'option 3 est probablement votre meilleur choix car vous bénéficiez de tous les avantages de l'utilisation d'OpenGL. C'est vraiment à vous de voir comment vouloir le faire. Il est également possible que vous puissiez charger vos sprites, effectuer tous les calculs de rotation avec SDL_gfx, puis enregistrer les versions pivotées dans une SDL_Surface en mémoire.

EDIT: En réponse à votre commentaire, je vous recommande de vérifier les tutoriels SDL de Lazyfoo. Specifically, this one about rotation. Il y a aussi un OpenGl function, glRotatef, ce qui peut être utile dans votre cas. Une recherche rapide ramené this little tidbit qui pourrait aussi être utile.

+0

Je pense que je voudrais explorer la route OpenGL, cependant, je n'ai jamais travaillé avec elle. Avez-vous des recommandations sur un site Web pour commencer un tutoriel pour la rotation? – Justen

+0

J'ai regardé un code de NeHe, et cela semble incroyablement fastidieux de mettre en place une rotation sur une image ... Je ne peux pas du tout comprendre, aucune aide sur ce sujet? – Justen

+0

Je n'ai pas/n'ai pas travaillé avec OpenGL depuis longtemps. Votre question de rotation spécifique à OpenGL peut être un bon sujet pour une nouvelle question. Vous êtes obligé d'obtenir une bien meilleure réponse que je peux donner. –

2

Vous pouvez utiliser une bibliothèque comme SDL_gfx

0
SDL_RenderCopyEx() 

possède des arguments supplémentaires pour la rotation, le retournement et le centre de rotation.

Questions connexes