Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Djushima

Pages: [1]
1
Système / Re: Thread et Fonction de classe à un parametre
« 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 !

2
Système / Re: Thread et Fonction de classe à un parametre
« 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?

3
Système / [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 !

Pages: [1]
anything