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

Auteur Sujet: [SFML 1.6] pb getEvent et actualisation du curseur  (Lu 2178 fois)

0 Membres et 1 Invité sur ce sujet

Péa

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
[SFML 1.6] pb getEvent et actualisation du curseur
« le: Mai 14, 2012, 02:02:40 am »
Salut,
avant toute chose merci beaucoup pour la SFML qui porte très bien son nom  8)

Voici mon problème qui est quand même un cas particulier je vous l'accorde :
Mon petit projet ( un moteur de RTS, j'en parlerai sûrement dans la section adaptée lorsqu'il sera plus abouti ) utilise une boucle principale qui actualise la logique du jeu a une vitesse définie,  et l'affichage le plus vite possible, du style :
const float gamespeed = 1.0f / 100;
while ( game_is_running )
{

}

Péa

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re : [SFML 1.6] pb getEvent et actualisation du curseur
« Réponse #1 le: Mai 14, 2012, 02:20:39 am »
désolé pour le fail de manip  :-[
je poursuis :
while (game_is_running)
{
while (TheClock.GetElapsedTime() > NextGameCycle  )
{
    ...actualiser la logique...
    NextGameCycle += GameSpeed;
}
    ...actualiser l'affichage...
}

J'ai besoin d'afficher un curseur particulier ( une sprite ), qui bien sûr a sa propre classe et actualise sa position avec getInput()->getMouseX() et son homologue vertical getMouseY().

Il semblerait ( après tests, loin de moin l'idée de mettre le nez dans le code de la SFML  :P ) qu'il soit nécessaire de vider la queue ( aha ) d'events pour que getMouseX() renvoie la nouvelle position du curseur.

Or, je gère les events dans la partie actualisation de la logique du jeu. Du coup, soit j'actualise le jeu a une vitesse ridiculement élevée, soit le déplacement du curseur n'est pas fluide, et pour un RTS, autant dire que ça sucks des balls.

Ma question est donc, y'a-t-il moyen d'actualiser la position du curseur sans appeler getEvent() ?
J'ai pensé à placer la gestion des events en dehors de la partie logique, mais comme ma boucle zappe des frames si nécessaire pour rester synchro, ça me paraît être une bien mauvaise idée.

Merci bien !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 1.6] pb getEvent et actualisation du curseur
« Réponse #2 le: Mai 14, 2012, 08:13:54 am »
Citer
Ma question est donc, y'a-t-il moyen d'actualiser la position du curseur sans appeler getEvent() ?
Oui : en passant à SFML 2.
Laurent Gomila - SFML developer

Péa

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
    • E-mail
Re : [SFML 1.6] pb getEvent et actualisation du curseur
« Réponse #3 le: Mai 14, 2012, 03:27:57 pm »
Waou, quelle rapidité !!
Bon, alors j'imagine que mon problème est résolu :)
J'attends une final release pour passer à la 2.0, je me pose comme un simple utilisateur, donc j'attends d'une library qu'elle soit simple d'utilisation et que les éventuels disfonctionnements de mon programme ne viennent en fait pas de cette library.  La 1.6 est excellente pour ça, donc je mets mon problème de côté, et d'ici là la 2.0 sera parfaite ;)

Merci beaucoup pour ton excellent boulot !