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

Auteur Sujet: Problème de keyrepeat  (Lu 7083 fois)

0 Membres et 1 Invité sur ce sujet

Negatio

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
Re : Problème de keyrepeat
« Réponse #15 le: Mai 22, 2013, 07:44:25 pm »
Comme je le (re)dit c'est un code minimal donc comme dirait quelqu'un: "c'est caca".
Dans mon vrai code je n'utilise pas les events de cette façons. J'insiste: je ne nécessite pas de critiques sur ce code (a part s'il sont en rapport avec mon problème) puisqu'une fois mon problème réglé ce code sera effacer sans vergogne.
PS: Juste comme ça comment peut-on vérifier l'event de fermeture autrement?

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Problème de keyrepeat
« Réponse #16 le: Mai 22, 2013, 07:53:43 pm »
Bah comme dans le chapitre "l'évènement closed" sur les évènements : http://www.sfml-dev.org/tutorials/2.0/window-events-fr.php
Ton if(event.Closed) il vient de nul part et il veut rien dire.

C'est pas parce que c'est un code minimal que c'est censé être incohérent. Enfin bon, je sais pas trop quoi te dire, je te dis de sortir tes isKeyPressed de la boucle d'évènements, tu dis que c'est pas le cas, et tu sors un code avec TOUT dans la boucle d'évènements... en me disant que tu veux pas en entendre parler lol.

Ton code est censé ressembler à ça :

main
   initialisations diverses
   boucle principale
      boucle d'évènements
          fermer si l'évenement est Closed
      gérer tes déplacements avec isKeyPressed
      clear la fenetre
      dessiner tes sprites
      display

Negatio

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
Re : Problème de keyrepeat
« Réponse #17 le: Mai 22, 2013, 08:21:40 pm »
Hourra je viens enfin de comprendre que la boucle "while(m_window.isOpen())" sert a quelque chose (et que accessoirement c'est la boucle principale). Mon problème c'est que je confondais la boucle d'event et la boucle principale!

Merci a vous, et spécialement a G qui a s'est évertuer a m'expliquer des choses aussi simples.

En ce qui concerne le if(event.Closed) ca marche et je comprend pas pourquoi (c'est vrai que ca n'a aucun sens).

Dernière question: je ne vois mention d'aucun label "résolu" je doit le mettre moi-même ou c'est normal?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème de keyrepeat
« Réponse #18 le: Mai 22, 2013, 08:44:42 pm »
Hmm... tout ça me laisse perplexe, car si tu avais réellement lu les tutoriels et la documentation, tu aurais eu des explications claires sur le sujet, et surtout un bon nombre d'exemples de boucle principale et d'évènements. Je peux pas croire que tu aies pondu un code pareil en ayant au préalable potassé la doc, beaucoup de choses que tu as écrites ne sont écrites nulle part, contrairement à leur version correcte :P

Citer
En ce qui concerne le if(event.Closed) ca marche et je comprend pas pourquoi (c'est vrai que ca n'a aucun sens).
event.Closed (en fait sf::Event::Closed) est une constante qui vaut zéro, ton test sera toujours faux. Note qu'un compilateur bien paramétré devrait te le signaler en avertissement.

Citer
Dernière question: je ne vois mention d'aucun label "résolu" je doit le mettre moi-même ou c'est normal?
Non, il n'y a rien à faire de spécial. Si tu veux éditer le titre pour mettre [RESOLU] tu peux toujours le faire, mais je m'en fiche un peu ;)
Laurent Gomila - SFML developer

Negatio

  • Newbie
  • *
  • Messages: 11
    • Voir le profil
Re : Problème de keyrepeat
« Réponse #19 le: Mai 23, 2013, 07:41:43 pm »
Citer
beaucoup de choses que tu as écrites ne sont écrites nulle part
Sincèrement appart mes if(Keyboard::isKeyPressed) très mal placés mon code minimal n'avait rien a voir avec mon "vrai" code. En faite le problème c'est que j'avais mal compris la différence entre les deux fameuses boucles et le pire c'est que j'ai retrouvé un "vieux" projet ou j'avais bien utiliser les events (et dont je m'inspire pour mon projet actuel). Au début j'étais persuadé que mon problème était lié au fait que j'avait séparer mon code en millier de classes.

J'ai lu la doc il y'a un moment déjà, j'ai cru comprendre qu'il y'a eu quelque changement, il serait temps que j'y rejette un oeil(ou tout simplement que je reprenne tout de zéro).

Citer
event.Closed (en fait sf::Event::Closed) est une constante qui vaut zéro, ton test sera toujours faux. Note qu'un compilateur bien paramétré devrait te le signaler en avertissement.
Il faut vraiment que je fasse quelque chose avec mon compilo, il me met jamais les bons avertissements quand il faut.

Encore une fois merci pour l'aide apportée :)