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

Auteur Sujet: [Résolu] Questions sur move() et la récupération de pos de souris.  (Lu 2132 fois)

0 Membres et 1 Invité sur ce sujet

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Bonsoir à tous !

Je n'ai pas trouvé de section "Question/réponse" donc je l'ai mis plutôt ici.

Comment récupérez-vous la position de la souris généralement ? D'habitude je fondais mon petit programme avec l'utilisation de sf::Mouse::getPosition(app).x et sf::Mouse::getPosition(app).y mais j'ai vu récemment qu'on pouvait utiliser app.getInput().getMouseX() et app.getInput().getMouseY() pour sf::RenderWindow app .. Quel est le mieux ? Quel est la différence entre les deux ? Existe-il un décalage entre un evenement et la position de la souris ? Si oui peut-on récupérer la position de la souris lors de l'event via une commande du style : event.mouse.getPosition() ?


Dans le même genre de question, quel est la différence entre un .move() et un .setPosition() ? Est-ce que le .move() se traduit à utiliser un .setPosition() ou l'inverse l'un par rapport à l'autre ? Quel est le mieux à utiliser niveau performance si on a le choix entre les deux ?

Merci beaucoup de vos éclaircissements ! Et longue vie à SFML avec lequel je m'amuse tellement !  :D
« Modifié: Janvier 31, 2013, 11:48:02 am par Rodd »

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : Questions sur move() et la récupération de pos de souris.
« Réponse #1 le: Janvier 31, 2013, 12:27:01 am »
Oh, je crois avoir trouvé la réponse pour ma première question..

via un event.mouseButton.x et event.mouseButton.y ? Non ?

Par contre je n'ai pas trouvé de réponse pour ma deuxieme question :) Merci!

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : Questions sur move() et la récupération de pos de souris.
« Réponse #2 le: Janvier 31, 2013, 05:29:19 am »
move déplace le sprite du nombre de pixels que tu lui fournis.
setPosition positionne le sprite aux coordonnées spécifiées.

Par exemple pour un sprite dont la position est x: 10 et y: 20, si tu fais un move(5, 3), le sprite se retrouve en x: 15 et y: 13.
Alors que si tu fais un setPosition(5, 3) bah le sprite se retrouve en x: 5 et y: 3.

Tu peux mater les sources pour voir le code des 2 méthodes : https://github.com/SFML/SFML/blob/master/src/SFML/Graphics/Transformable.cpp
move appelle setPosition, niveau perf l'un ou l'autre c'est du pareil au même quoi. ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Questions sur move() et la récupération de pos de souris.
« Réponse #3 le: Janvier 31, 2013, 08:09:45 am »
Citer
Comment récupérez-vous la position de la souris généralement ? D'habitude je fondais mon petit programme avec l'utilisation de sf::Mouse::getPosition(app).x et sf::Mouse::getPosition(app).y mais j'ai vu récemment qu'on pouvait utiliser app.getInput().getMouseX() et app.getInput().getMouseY() pour sf::RenderWindow app .. Quel est le mieux ? Quel est la différence entre les deux ?
Le premier est SFML 2.0, le second SFML 1.6. Donc pas de "mieux", pas de différence, juste pas la même version.

Citer
Existe-il un décalage entre un evenement et la position de la souris ?
Le décalage est celui qui existe entre le moment où l'évènement est généré, et celui où tu le traites. Donc pas grand chose si ta boucle principale tourne suffisamment vite. Mais comme tu l'as vu, tu peux récupérer les coordonnées de la souris directement depuis l'évènement ; de manière générale, les évènements sont faits pour être indépendants des entrées temps-réel, il ne faut pas mélanger les deux.

Citer
Si oui peut-on récupérer la position de la souris lors de l'event via une commande du style : event.mouse.getPosition() ?
Oui, et on peut aussi lire les tutoriels ;)
« Modifié: Janvier 31, 2013, 08:11:30 am par Laurent »
Laurent Gomila - SFML developer

Rodd

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
    • E-mail
Re : Re : Questions sur move() et la récupération de pos de souris.
« Réponse #4 le: Janvier 31, 2013, 11:45:54 am »
Oui, et on peut aussi lire les tutoriels ;)

Gna gna gna :p J'avais loupé l'étape event des tutos !! :D



Merci de vos réponses