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

Auteur Sujet: Utiliser Window.pollevent abusivement  (Lu 3951 fois)

0 Membres et 1 Invité sur ce sujet

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Utiliser Window.pollevent abusivement
« le: Novembre 20, 2012, 02:10:07 pm »
Bonjour,

             Je me demandais si l'utilisation abusive du pollevent pour gérer par exemple des transition, des temps de chargement,était recommandé ou non ou si sa pouvait amener à un problème ou bien si il est préférable de mettre qu'un seul pollevent dans tout son code est essayer de s'arranger avec son code.

Je vous remercie, si je n'est pas été assez clair, n'hésitez pas !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #1 le: Novembre 20, 2012, 03:53:38 pm »
C'est pas clair du tout. Mais bon, avior plein de pollEvent est généralement une erreur : les évènements qui sont traités à un endroit seront loupés dans tous les autres. Il faut donc une unique boucle d'évènements centralisée, qui dispatche éventuellement les évènements à qui est intéressé.
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #2 le: Novembre 20, 2012, 06:21:53 pm »
Oui je comprend ce que tu veux dire, cependant ce n'est pas de la façon donc tu parles que je souhaite utiliser.

Je parle plutôt de ceci:

window.pollevent(event);  //le code du menu disons
gererevenementmenu(event);
DrawMenu();

while(VeutJouer)  // j'avais mis un if, je l'ai remplacé après on troisième post
{
window.pollevent(event)  // le code du jeu
gererevenementjeu(event);
DrawJeu();
}
 


J'espère que tu auras compris avec cette explication très...minimaliste ;).

De cette façon je crois que sa peut fonctionne non?

Merci !
« Modifié: Novembre 20, 2012, 10:44:53 pm par Chaore »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #3 le: Novembre 20, 2012, 06:43:08 pm »
Oui là ça va.

Du coup quel est ton problème / ta question ?
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #4 le: Novembre 20, 2012, 10:42:41 pm »
J'ai fait une erreur, remplace le if par un while.

Non c'est bon, c'est seulement pour savoir si c'était "clean" et courant de faire ceci pour gérer un menu/un jeu/des transitions et autres.

Merci beaucoup et désolé du dérangement occasionné ;)


Samuel Proulx

  • Full Member
  • ***
  • Messages: 118
    • Voir le profil
Re : Utiliser Window.pollevent abusivement
« Réponse #5 le: Novembre 21, 2012, 04:10:18 am »
Hum... je suis curieux de savoir c'est quoi ce fonctionnement étrange ? :o

Je ne comprends pas pourquoi faire plusieurs pollevent pour gérer la GUI et le render (jeu).... ???

Quelqu'un peut m'expliquer ce qu'il fait ?

Merci et bonne journée ! :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #6 le: Novembre 21, 2012, 08:21:01 am »
Il a des "écrans" différents : le menu, le jeu, etc. Comme ces écrans n'ont rien en commun (logique et graphismes différents), ils n'ont rien en commun non plus dans le code. C'est comme si chaque écran était une mini-appli à part entière -- en caricaturant un peu.

Ceci-dit on peut quand même faire mieux. Tu te rends compte que dans l'exemple que tu as donné, les 3 lignes de code sont identiques, elles ne s'appliquent juste pas au même "écran". Du coup tu peux factoriser :

window.pollEvent(event)

ecran_courant.gerer(event);
ecran_courant.draw();

ecran_courant étant une instance de EcranMEnu ou EcranJeu, dérivant toutes deux de Ecran (par exemple). Ca te permet de factoriser la logique de haut-niveau, la boucle principale en gros.

C'est un pattern courant, pour lequel tu trouveras pas mal d'articles et d'implémentations. Y compris sur le wiki de SFML.
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Utiliser Window.pollevent abusivement
« Réponse #7 le: Novembre 21, 2012, 02:05:39 pm »
Haaa oui d'accord !

C'est bien merci beaucoup ! 8)