Bonjour à tous,
Je souhaiterai refaire un gestionnaire d’événements pour SFML, un peu à la javascript.
C'est à dire que j'aimerais organiser tout ce qui est affiché à l'écran sous la forme d'un arbre de parenté. Les enfants étant affichés par dessus les parents. Chacun de ces éléments seraient à l'écoute d’événements (mouse up/down, focus/blur, mouse enter/leave, etc.)
Lorsqu'un événement se déclenche pour l'un de ces objets, il exécute les fonctions callbacks que l'utilisateur aura associés à celui-ci (listeners).
J'aimerai faire une propagation d’événement à la javascript, c'est à dire, avoir une phase de capture que déclenchera certains listeners de la racine (écran global) aux feuilles (enfants) ainsi qu'une phase de bubbling qui fera remonter l’événement d'une feuille vers la racine.
Ce gestionnaire d'événement à plusieurs avantages par rapport à la gestion classique des événements via SFML :
- Avoir un code plus lisible : fini l'énorme switch pour interpréter l'événement reçu ! Le gestionnaire d'événement s'occupera de déclencher automatiquement les bons callback
- Simplifier les événements plus complexes : l'événement focus sera automatiquement géré, etc.
- Cela permettra simplifier le développement de bibliothèques graphiques GUI (avec la gestion des callback, du focus, etc., il sera très simple de gérer des boutons, des textbox, de coder une console, etc.)[\li]
Le but ici, n'est pas de refaire une bibliothèque GUI, mais de simplifier la gestion des événements sous SFML.
C'est tout de même plus simple à mon sens, dans un jeu, d'avoir un coffre au trésor sur lequel on écoute l'événement 'onClick' et qui déclenche automatiquement la bonne fonction lorsque l'on clique sur cet objet
Ma question, c'est est-ce que ça a déjà été codé pour SFML ?
Parce que si ça a déjà été fait, ça ne sert à rien que je réinvente la roue ^^
Sinon, je pourrais alors commencer à penser comment je vais faire ça (est-ce que le gestionnaire d'événement doit gérer tous les sprites ou alors juste les objets héritant de clickable ? etc.)