Je construis un jeu et le bras du personnage principal suivra le curseur de la souris, donc il tournera assez fréquemment. Quel serait le meilleur moyen de le faire pivoter?La meilleure façon de faire pivoter une image en utilisant SDL?
Répondre
Avec SDL vous avez quelques choix.
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.
Utilisez quelque chose comme SDL_gfx pour effectuer une rotation/un zoom en temps réel. (Non recommandé, très lent)
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.
Vous pouvez utiliser une bibliothèque comme SDL_gfx
SDL_RenderCopyEx()
possède des arguments supplémentaires pour la rotation, le retournement et le centre de rotation.
- 1. J'ai besoin d'aide pour faire pivoter une image avec OpenGL en utilisant SDL
- 2. Je dois faire pivoter une image
- 3. Comment faire pivoter une image sur l'iPhone?
- 4. Comment puis-je faire pivoter une image de la flèche en appuyant sur cette image?
- 5. Quelle est la meilleure façon de faire pivoter un CGPoint sur une grille?
- 6. Faire pivoter une image dans la programmation Windows Mobile
- 7. Comment utiliser SDL pour créer une image en mode multiplier?
- 8. Est-ce la meilleure façon de faire une demande d'API en utilisant PHP CURL?
- 9. Comment faire pivoter une étiquette en C#?
- 10. La meilleure façon d'estamper une image avec une autre image pour créer un filigrane dans ASP.NET?
- 11. Approche la plus rapide pour faire pivoter une image sur l'iPhone
- 12. Comment charger une image en utilisant SDL et Xcode sous OS X 10.5?
- 13. Faire pivoter les images, si dernière image puis masquer
- 14. Quelle est la meilleure façon de "mettre en carré" une image dans .NET?
- 15. C# Faire une image en utilisant diverses images
- 16. La meilleure façon d'obtenir des sous-propriétés en utilisant GetProperty
- 17. Meilleure façon de faire ce cas REST
- 18. Quelle est la meilleure façon de "maculer" une image par programmation?
- 19. La meilleure façon d'interroger une base de données en utilisant une instruction OU
- 20. La meilleure façon de fermer et attendre une fenêtre de cadre enfant en utilisant Win32/MFC
- 21. meilleure façon de faire par défaut param = une variable?
- 22. Meilleure façon de faire un WYSIWYG en Flex?
- 23. une meilleure façon de faire ajax dans django
- 24. Faire pivoter des images en Javascript
- 25. Linq 2 SQL - Une meilleure façon de le faire
- 26. La meilleure façon d'implémenter un serveur de session en utilisant une base de données?
- 27. Quelle est la meilleure ou la meilleure façon de télécharger une image dans db dans asp.net mvc?
- 28. Quelle est la meilleure façon de faire ce programme Java?
- 29. Meilleure façon de randomiser une liste de chaînes en Python
- 30. XLinq - Une meilleure façon
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
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
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. –