Forum de la communauté SFML
Aide => Fenêtrage => Discussion démarrée par: Rodd le Janvier 31, 2013, 12:17:37 am
-
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
-
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!
-
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. ^^
-
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.
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.
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 ;)
-
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