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

Auteur Sujet: [RESOLU] Thread et Fonction de classe à un parametre  (Lu 2613 fois)

0 Membres et 1 Invité sur ce sujet

Djushima

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
[RESOLU] Thread et Fonction de classe à un parametre
« le: Janvier 22, 2020, 08:32:10 pm »
Bonjour!

Je suis plutôt nouveau sur SFML, et je rencontre actuellement un problème dans lequel je comprends le soucis, mais ne voit pas comment mettre en place la solution

J'ai une classe, appellée "Animation", avec a l'interieur une fonction Play(). J'aimerai que cette fonction s'execute en parallèle du reste du programme et utilse donc un Thread. Voici le bout de code correspondant:

public:

        Animation(animName index) : animThread(&Animation::Play, this){
                this->Name = index;
                switch (Name) { . . . }
        }

        ~Animation() { . . . }

        void Play(sf::RenderWindow &window);

        sf::Thread animThread;
};

Je l'appelle dans le main() de mon app avec le code suivant:
auto shotAnim = new Animation(animName::Shot);
shotAnim->animThread.launch();

Et il me donne l'erreur suivante: C2064: le terme ne correspond pas à une fonction qui prend 1 argument.

Je comprends qu'il me manque l'argument de type RenderWindow dans "shotAnim->animThread.launch();", mais je ne vois pas comment le passer.

J'utilise Visual Studio 2017 (Debug, x86).

Pouvez-vous m'aider? merci !
« Modifié: Janvier 23, 2020, 01:59:09 pm par Djushima »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Thread et Fonction de classe à un parametre
« Réponse #1 le: Janvier 22, 2020, 09:51:12 pm »
Avec SFML tu ne peux pas. Utilise std::thread !

Et... tout cela sent la fausse bonne idée et les embrouilles ;) Tu n'as pas besoin d'un thread pour gérer des animations.
Laurent Gomila - SFML developer

Djushima

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Thread et Fonction de classe à un parametre
« Réponse #2 le: Janvier 22, 2020, 11:27:33 pm »
Merci de ta réponse ! Je vais aller voir ca.

Ah? Je veux jouer une animation en oneshot, pas en continu. Du coup j'ai fais ma fonction play a call quand je le souhaite. Le soucis est que je suis obligé de passer par un while pour parcourir toutes les frames de mon anim, et a partir de la, ca bloque toute mon application tant que l'anim n'est pas finie, pour ca que j'ai pensé a un thread.

Quelle solution me recommande-tu d'aller me renseigner?

G.

  • Hero Member
  • *****
  • Messages: 1590
    • Voir le profil
Re: Thread et Fonction de classe à un parametre
« Réponse #3 le: Janvier 23, 2020, 02:29:01 am »
Par exemple tu peux update ton animation à chaque frame du jeu en lui passant le temps écoulé depuis la dernière frame, ce temps s'accumule et quand il dépasse le temps qu'est censé durer l'image courante de l'animation tu passes à la prochaine image.
Tu peux t'inspirer d'un exemple sur le wiki avec la fonction update.

Pas compris ce que tu veux dire par "jouer une anim en oneshot" par contre :p

Djushima

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Thread et Fonction de classe à un parametre
« Réponse #4 le: Janvier 23, 2020, 01:34:31 pm »
Je vois. Il faudrait donc que j'appelle ma fonction Play a chaque frame plutôt qu'une fois (une fonction update plutot que play du coup, je vais la modifier en m'inspirant des ressources).

C'est ca que j'entendais par oneshot. J'appelle ma fonction dans une seule frame, elle exécute toute l'animation (changement de sprite, clear, draw, display toutes les x secondes) et s'arrête, et non pas que celle ci voit si elle s'update a chaque frame.

Gros soucis de vision de la structure de ma part ahah.

Merci pour tout ca, je file modifier mon code !

EDIT: C'est bon ! J'ai adapté les ressources a mon code, et c'est vrai que c'est 100x plus simple. Merci Beaucoup !
« Modifié: Janvier 23, 2020, 06:15:59 pm par Djushima »

elaboratemitt

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: [RESOLU] Thread et Fonction de classe à un parametre
« Réponse #5 le: Décembre 15, 2022, 05:29:03 am »
Cela a également fonctionné pour moi.

happy wheels

kiara williams

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re: core-ball
« Réponse #6 le: Août 10, 2023, 09:31:48 am »
The phrase could be seen as a way of saying that communication is essential for success in sports.The phrase could also be seen as a way of highlighting the social aspect of sports.The phrase could be used to describe the importance of building  https://core-ball.org  relationships with teammates. The phrase could be used to encourage players to communicate more effectively on the field.

kiara williams

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re: core-ball
« Réponse #7 le: Août 10, 2023, 09:33:54 am »
The phrase "chat is core ball game" is not a commonly used phrase, so it is difficult to say exactly what it means. However, based on my knowledge, it seems that the phrase may be used to describe the importance of communication in sports. In many sports https://core-ball.org communication between teammates is essential for success. Players need to be able to communicate effectively in order to coordinate their movements, strategize, and make adjustments during the game.

 

anything