Afficher plusieurs fois le même sprite avec une condition [SFML]

Dark_another 367 Messages postés mardi 28 juin 2016Date d'inscription 18 mars 2018 Dernière intervention - 20 déc. 2017 à 19:17 - Dernière réponse : Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention
- 6 août 2018 à 17:54
Bonjour,

Comme indiqué dans le titre, je voudrai afficher plusieurs fois le même sprite avec une condition


Pseudo code:



inclure le fichier "data1"



création de la texture "t_hero";
création du sprite "s_hero";

charger la texture "t_hero" depuis le fichier mémoire "g_data1" ;


appliquer la texture "t_hero" à "s_hero";

si le bouton du milieu de la sourie est pressé, alors :

créer une variable sf::Vector2u qu'on appel "positionSourie";
"positionSourie.x" = position de la sourie en abscisse;
"positionSourie.y" = position de la sourie en ordonnée;
afficher un nouveau "s_hero" et le positionner là où se trouve la sourie; //la où je bloque





soit


#include "data1"


sf::Texture t_hero;
sf::Sprite s_hero;

t_hero.loadFromMemory(g_data1, sizeof(g_data1));


s_hero.setTexture(t_hero);


if(sf::Mouse::isBottonPressed(sf::Mouse::middle)
{
           sf::Vector2u positionSourie;
           positionSourie.x = sf::Mouse::getPosition().x;
           positionSourie.y = sf::Mouse::getPosition().y;
           //le fameux code qui génère une x ième fois le même sprite               //je bloque içi
          /*le x ième*/ s_hero.setPosition(positionSourie.x, positionSourie.y);    //et là
}




Or, je ne vois pas comment afficher plusieurs fois le même sprite. J'ai entendu parler des vertexArray dans SFML mais apparemment il vaut mieux avoir TOUTES les textures dans une même image, et perso je n'aime pas utilisé ce genre de truc. Il y a t'il un autre moyen (si oui, comment ?) ou je dois faire avec vertexArray ?

Merci de vos réponses.


(Dîtes-moi si il est nécessaire de faire un pseudo-code, pour savoir)
Afficher la suite 

Votre réponse

2 réponses

0
Merci
Bonjour, même si cela date un peu, ça peut aider les prochains.
Il me semble que l'on peut afficher autant de fois un sprite qu'on le veut.
imaginons :
sprite.setPosition(sf::Vector2f{0, 0});
sprite.draw(window);
sprite.setPosition(sf::Vector2f{250, 250});
sprite.draw(window);
/* Va afficher le sprite deux fois a deux position différentes, je n'ai pas d'IDE de dispo donc je ne sais pas si les fonctions setPosition et draw sont bien orthographiées *\


EDIT : Ajout des balises de code
Commenter la réponse de Parax
Whismeril 12116 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 octobre 2018 Dernière intervention - 6 août 2018 à 17:54
0
Merci
Bonjour
Quand on exhume un question vielle de presque un an, on essaye
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.