Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Problème de keyrepeat  (Read 8315 times)

0 Members and 1 Guest are viewing this topic.

Negatio

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re : Problème de keyrepeat
« Reply #15 on: May 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
  • *****
  • Posts: 1599
    • View Profile
Re : Problème de keyrepeat
« Reply #16 on: May 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
  • *
  • Posts: 11
    • View Profile
Re : Problème de keyrepeat
« Reply #17 on: May 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
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
Re : Problème de keyrepeat
« Reply #18 on: May 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

Quote
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.

Quote
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
  • *
  • Posts: 11
    • View Profile
Re : Problème de keyrepeat
« Reply #19 on: May 23, 2013, 07:41:43 pm »
Quote
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).

Quote
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 :)

 

anything