Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Un sprite et deux textures ou deux sprites ?  (Lu 1985 fois)

0 Membres et 1 Invité sur ce sujet

TheTintin

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
[Résolu] Un sprite et deux textures ou deux sprites ?
« le: Octobre 15, 2014, 11:06:49 pm »
Bonsoir !

Je suis en DUT GE2I et je travaille sur un projet tuteuré qui est de recoder un Flappy Bird sur Raspberry.
N'ayant pas envie de le faire en Scratch, j'ai décidé de le faire en C++ et avec la SFML.
Voilà pour le contexte  :)

En fait, j'ai lu dans les tutoriaux que l'utilisation de plusieurs textures était déconseillé , qu'il fallait plutôt utiliser plusieurs sprites.
Pourriez-vous m'éclairer ? J'ai donc un oiseau à afficher, à faire bouger et à animer.
Ma question est donc, dois-je utiliser deux sprites avec chacun une texture de l'oiseau, ce qui me parait peu logique et plus galère à gérer (Faire attention à ce qu'il n'y en ai qu'un seul afficher à la fois, etc...)
Ou dois-je utiliser un seul sprite avec deux textures et dans ce cas il me suffit d'alterner les textures. Cet méthode me semble beaucoup plus logique mais comme le tuto semble dire que le changement de texture est une opération coûteuse en ressources.

Peut-être aller vous me répondre que oui, c'est une opération coûteuse mais que pour alterner deux textures d'un millier de pixel (27*39) seulement ne devrait pas être trop coûteux, mais le programme tournera sur un raspberry, qui n'a pas vraiment la puissance de calcul et encore moins la carte graphique de nos PC  :)

Voila, j'espère que mon explication n'était pas trop flou  :-[
Merci d'avance à ceux qui pourront m'éclairer  :)
« Modifié: Octobre 16, 2014, 11:40:07 pm par TheTintin »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Un sprite et deux textures ou deux sprites ?
« Réponse #1 le: Octobre 16, 2014, 12:18:42 am »
Utilise un sprite pour ton oiseau, et une ou plusieurs textures.
Si tu as toutes tes images sur une même texture, utilise setTextureRect pour définir/changer la partie de la texture à afficher.

Pour les tuyaux (ou autres) tu peux utiliser un sprite par tuyau, et ces sprites peuvent tous utiliser la même texture. (qui peut être la même texture que celle de l'oiseau, si t'as assez de place dessus)

Bref le truc à retenir c'est qu'il ne faut pas charger plusieurs fois la même texture, plusieurs sprites peuvent utiliser la même. Ensuite que tu décides d'utiliser plusieurs textures ou de rassembler toutes tes images sur une seule texture ça va pas changer grand chose sur un projet de cette envergure et c'est probablement pas un flappy bird qui va faire exploser ton raspberry. :p
(perso je mettrais un max sur la même texture, surtout qu'apparemment c'est des petites images que t'as)
« Modifié: Octobre 16, 2014, 12:20:38 am par G. »

TheTintin

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Un sprite et deux textures ou deux sprites ?
« Réponse #2 le: Octobre 16, 2014, 12:35:24 am »
Ah !
Merci, tu m'as bien éclairci les idées.

Oui, j'avais penser modifier mon code pour charger des morceaux de textures, mais genre après, quand je tâtonnerais un peu moins avec la SFML. Mais oui, j'avais pas tilter que que du coup ça ne représentait qu'une seule texture, effectivement. (Il est tard, ok ?  ;D )

Avec le peu d'expérience que j'ai, je me rends pas compte de la puissance que ça demande, et n'ayant encore rien coder sur mon rasp, j'ai pas non plus idée de sa puissance.

En tout cas merci pour ton aide.  :)

PS :
Tu peux peut-être m'aider sur une question que je me pose ?
J'ai mon objet Bird, qui gère l'oiseau, ses sprites, textures, tout le tsoin tsoin et donc j'utilise une méthode à laquelle j'envoie un pointeur sur la fenêtre pour qu'il y dessine l'oiseau.
Histoire qu'il ne batte pas des ailes à se les rompre, je décrémente une variable à chaque appel et n'affiche l'oiseau qu'une fois celle-ci à 0.
Est-ce qu'il y a une façon plus ... claire ? propre ? ... de faire ? Que les gens utiliseraient généralement.

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Un sprite et deux textures ou deux sprites ?
« Réponse #3 le: Octobre 16, 2014, 09:31:11 am »
C'est une technique commune et utilisée pour "animer" des sprites.
En ajoutant à cela qu'on préfère utiliser une unité de temps plutot qu'un nombre de frames, pour que les animations aillent à la même vitesse quelque soit le nombre de fps auquel ton jeu tourne. Mais c'est le même principe.

TheTintin

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Un sprite et deux textures ou deux sprites ?
« Réponse #4 le: Octobre 16, 2014, 10:18:58 am »
J'ai vu ça dans un autre topic.  :)
J'vais regarder la gestion du temps et changer ma variable.

 

anything