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

Auteur Sujet: Classe de gestion des evenements  (Lu 2122 fois)

0 Membres et 1 Invité sur ce sujet

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
Classe de gestion des evenements
« le: Novembre 26, 2013, 07:20:20 pm »
Bien le bonjour/bonsoir.

Alors voila, cela fait plusieurs jours que je réfléchis a un moyen de mettre ma boucle d'evenements dans une classe a part pour éclaircir le main. mais je n'arrive pas a trouver de solution viable, mais je suis persuader que cela doit-etre possible.

je n'ai pas de probleme a imaginer comment tester si un evenement a lieu, par exemple une touche appuyer, mais le probleme vient de comment spécifier quelle action réaliser en fonction de l'evenement en question..

je n'ai pas de code a donner en exemple puisque j'en suis encore a la réflexion, je poste juste au cas ou quelqu'un aurait quelques idées a me souffler pour m'inspirer, m'orienter vers un autre cheminement de pensé...

a votre bon coeur ^^, merci d'avance pour vos réponses.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Classe de gestion des evenements
« Réponse #1 le: Novembre 26, 2013, 07:46:39 pm »
Le problème n'est pas de déplacer la boucle d'évènements du main() vers une fonction membre d'une classe, puisque ça ne change rien (tu peux faire un bête copier-coller), donc visiblement ton problème est autre. Il va donc falloir être un peu plus précis, parce que là, à part ça :

void MaClass::handleEvents(sf::Window& window)
{
    sf::Event event;
    while (window.pollEvent(event))
    {
        if (event.type == ...)
        {
            // là tu fais ce que tu veux
        }
    }
}

... je ne vois pas trop quoi te dire.
Laurent Gomila - SFML developer

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
Re : Classe de gestion des evenements
« Réponse #2 le: Novembre 26, 2013, 10:26:58 pm »
Je me doute qu'un bete copier coller n'est pas problématique, et je m'excuse si mes explications ne sont pas claires, je conçoit tout a fait que je ne puisse pas etre limpide ^^.

mon idée serai de faire cela de maniere un peut plus orienté objet, créer une classe a qui l'on puisse rajouter ou enlever des evenements a gerer, pas simplement lui dire directement quoi faire. je ne voudrais pas simplement créer une fonction unique a un programme mais une classe que je puisse réutilisé.
par exemple, je créer ma classe "GestEvenements", je lui rajoute un evenement via une methode membre en lui spécifiant le type, la valeur (le code de la touche si c'est un evenement de type sf::Keypressed), et l'action a réaliser. mais c'est au niveau de l'action en question que je me perd. j'ai penser aux foncteurs, mais cela implique beaucoup trop de foncteurs différents....

cependant, j'ai penser tout a l'heure a simplement fournir une reference vers un booléen, qui serai inverser lorsque l'evenement aurait lieu, puis le bout de code possedant le booléen s'occuperait d'effectuer l'action rattacher a l'etat de ce booléen.

je suis encore débutant et il y a beaucoup de choses que j'ignore encore, mais j'ai le sentiment qu'il y a sans doute un moyen simple de faire cela.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Classe de gestion des evenements
« Réponse #3 le: Novembre 26, 2013, 10:33:00 pm »
On dirait que tu cherches un truc de ce genre : http://www.bromeon.ch/libraries/thor/v2.0/tutorial-actions.html
Laurent Gomila - SFML developer

Varden

  • Newbie
  • *
  • Messages: 46
    • Voir le profil
Re : Classe de gestion des evenements
« Réponse #4 le: Novembre 26, 2013, 11:01:33 pm »
Je ne suis pas un ténor de l'anglais, mais a premiere vue cela semble en effet ce que je recherche (ouf quelqu'un de plus expérimenté que moi l'as déjà fait :p). je vais étudier tout cela de plus près(avec un traducteur ^^).

on m'avait déja parler de cette librairie, mais je voulais déjà achever ou tout du moins dévelloper au mieux, ma connaissance et compréhension de la SFML avant d'aller voir ailleurs.

encore une fois merci pour ta réponse rapide et tres utile, je reviendrai t'embêter si cela ne me convient pas ^^.

 

anything