Meilleur moyen pour faire pivoter une image à l'aide de SDL?
Je suis la construction d'un jeu et le personnage principal du bras sera suivant le curseur de la souris, de sorte qu'il sera en rotation assez fréquemment. Ce serait le meilleur moyen pour la faire tourner?
Tournez tous vos sprites à l'avance (pré-rendu possible rotations) 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 souligné, RotSprite est un excellent outil pour générer des sprite transoformations.
Utiliser quelque chose comme SDL_gfx de le faire en temps réel de rotation/zoom. (Non recommandé, très lent)
L'utilisation de SDL en mode OpenGL, et de rendre vos sprites pour les primitives, appliquez une rotation à l'primitives.
L'Option 3 est probablement votre meilleur pari, car vous procurer tous les avantages de l'utilisation d'OpenGL. C'est vraiment comment vous voulez le faire. C'est aussi une possibilité que vous pouvez charger vos sprites, effectuer la rotation des calculs avec SDL_gfx, puis enregistrer la rotation de versions pour un SDL_Surface dans la mémoire.
Je pense que je voudrais explorer l'OpenGL route, cependant, je n'ai jamais travaillé avec elle. Avez-vous des recommandations à faire sur un site web pour commencer sur un tutoriel pour la rotation? J'ai regardé un peu de code à partir de NeHe, et cela semble incroyablement fastidieux à configurer une rotation sur une image... je ne peux pas comprendre, à tous, toute l'aide sur ce sujet? Je n'ai pas/n'avez pas travaillé avec OpenGL dans un temps long. OpenGL-rotation spécifique de la question peut être un bon sujet pour une nouvelle question. Vous êtes lié pour obtenir une bien meilleure réponse que je puisse donner. Voulais juste ajouter que pour votre option 1 (qui est l'approche la plus commune), RotSprite est une excellente solution -- google, c'est un outil gratuit. Également à noter, il existe une option 4: Écrivez vous-même à l'aide de matrices; voir Marc Rançon de la réponse de ici. La meilleure façon de remercier quelqu'un par le biais d'un upvote sur leur commentaire 🙂
Avec SDL vous avez un peu de choix.
Tournez tous vos sprites à l'avance (pré-rendu possible rotations) 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 souligné, RotSprite est un excellent outil pour générer des sprite transoformations.
Utiliser quelque chose comme SDL_gfx de le faire en temps réel de rotation/zoom. (Non recommandé, très lent)
L'utilisation de SDL en mode OpenGL, et de rendre vos sprites pour les primitives, appliquez une rotation à l'primitives.
L'Option 3 est probablement votre meilleur pari, car vous procurer tous les avantages de l'utilisation d'OpenGL. C'est vraiment comment vous voulez le faire. C'est aussi une possibilité que vous pouvez charger vos sprites, effectuer la rotation des calculs avec SDL_gfx, puis enregistrer la rotation de versions pour un SDL_Surface dans la mémoire.
EDIT: En réponse à votre commentaire, je voudrais vous recommandons de vérifier Lazyfoo de la SDL tutorals. Plus précisément, celui de la rotation. Il y a aussi un Fonction OpenGl,
glRotatef
, ce qui peut être utile dans votre cas. Une recherche rapide ramené cette petite friandise qui pourrait également être utile.J'ai regardé un peu de code à partir de NeHe, et cela semble incroyablement fastidieux à configurer une rotation sur une image... je ne peux pas comprendre, à tous, toute l'aide sur ce sujet?
Je n'ai pas/n'avez pas travaillé avec OpenGL dans un temps long. OpenGL-rotation spécifique de la question peut être un bon sujet pour une nouvelle question. Vous êtes lié pour obtenir une bien meilleure réponse que je puisse donner.
Voulais juste ajouter que pour votre option 1 (qui est l'approche la plus commune), RotSprite est une excellente solution -- google, c'est un outil gratuit. Également à noter, il existe une option 4: Écrivez vous-même à l'aide de matrices; voir Marc Rançon de la réponse de ici.
La meilleure façon de remercier quelqu'un par le biais d'un upvote sur leur commentaire 🙂
OriginalL'auteur
Vous pouvez utiliser une bibliothèque comme SDL_gfx
OriginalL'auteur
a des arguments supplémentaires pour la rotation, l'inclinaison, et le centre de rotation.
OriginalL'auteur