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

Auteur Sujet: [SFML 2.0] default view  (Lu 4537 fois)

0 Membres et 1 Invité sur ce sujet

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
[SFML 2.0] default view
« le: Janvier 05, 2013, 03:39:12 pm »
Bonjour à tous,

J'utilise une sf::View, et toutes les coordonnées du curseurs sont définies par elle, ce qui est embêtant  >:(
Pourtant j'utilise bien window.setView(window.getDefaultView()); après avoir utilisé la sf::View, mais les coordonnées restent relatives à cette dernière.
Des idées sur mon erreur ?

Merci et bonne journée !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] default view
« Réponse #1 le: Janvier 05, 2013, 06:17:51 pm »
Montre un bout de code (si possible, complet et minimal).
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #2 le: Janvier 05, 2013, 06:48:42 pm »
Tout se passe dans un objet "Scene" qui a pour attribut une sf::RenderWindow "m_window" :

Pour dessiner :
m_window.setView(m_vue);

// Dessins d'objets qui sont relatifs à la vue

m_window.setView(m_window.getDefaultView());

Ensuite la où je bloque c'est pour la position de la souris, que je récupère ainsi :
m_mousePos = m_window.convertCoords(sf::Mouse::getPosition(m_window));

Je n'arrive pas à faire en sorte que la position du curseur dépende de la vue par défaut d'origine.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] default view
« Réponse #3 le: Janvier 05, 2013, 06:54:29 pm »
Allez, ça doit pas être compliqué de faire un code complet et minimal pour ce genre de problème. Parce que là sans ça, on peut tout aussi bien y passer plusieurs jours.
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #4 le: Janvier 05, 2013, 07:07:19 pm »
Désolé, je pensais que c'était suffisant.

Donc voici un code minimal :

sf::RenderWindow m_window;
sf::Vector2f m_mousePos;
sf::View m_view;

m_window.setView(m_window.getDefaultView());
m_mousePos = m_window.convertCoords(sf::Mouse::getPosition(m_window));
m_view.move(10,10);
cout << m_mousePos.x << ";" << m_mousePos.y << endl;  // La position du curseur dépend de la vue


Et j'essaie de faire correspondre la position de la souris avec la vue d'origine.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] default view
« Réponse #5 le: Janvier 05, 2013, 07:10:42 pm »
Et complet ? Non ? :(
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #6 le: Janvier 05, 2013, 07:16:42 pm »
Bon je suis vraiment désolé  :-\
Je pense que le problème vient du fait que je ne comprends pas comment fonctionnent les views avec la fenêtre, parce que là, je pensais vraiment avoir mis un code minimal et complet.

Concrètement qu'est ce qui manque pour que le code soit complet ?


P.S :  en tout cas ce n'est pas de la mauvaise fois ou de la fainéantise hein !
« Modifié: Janvier 05, 2013, 07:18:14 pm par Macrob »

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #7 le: Janvier 05, 2013, 08:17:21 pm »
http://en.sfml-dev.org/forums/index.php?topic=5559.msg36368#msg36368
J'ai pas trouvé l'équivalent français s'il y en a un.
En gros complet, on copie/colle ton code dans notre IDE préféré et ça compile sans problème et sans rien ajouter. Minimal c'est ton code le plus simple possible où tout ce qui n'a pas de rapport avec le problème et n'est pas utile a été enlevé.

T'es obligé d'utiliser convertCoords ? Et sinon, t'as essayé un spécifiant une sf::View dans ton appel à convertCoords ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 2.0] default view
« Réponse #8 le: Janvier 05, 2013, 08:23:20 pm »
Désolé de ne pas avoir détaillé ma pensée, je pensais que le mot "complet" était suffisamment explicite (sans ironie).
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #9 le: Janvier 05, 2013, 08:38:13 pm »
Salut G.,

Désolé pour le code complet, c'est juste que j'ai tendance à prendre les habitués du forum et Laurent comme des sur-hommes qui peuvent définir le problème exact à partir de rien  ;D

Et sinon j'ai enfin résolu mon problème, qui venait en fait de mon incompréhension de l'usage des vues.
En fait, avec la commande suggérée par G :

sf::Vector2f mousePos = window.convertCoords(sf::Mouse::getPosition(), m_view)

J'ai pu avoir ce que j'appelais au début du post la "default view". Donc je confondais la "vue" de la fenêtre et la vue que j'avais définie.

Encore désolé pour la perte de temps, et merci pour votre patience  :)


EDIT : après quelques essais, je suis vraiment perdu... Comment avoir la position de la souris par rapport à la vue par défaut ? Pas par rapport à la fenêtre, mais bien la vue originaire, celle à qui on fait référence quand on utilise .setPosition() par exemple.
« Modifié: Janvier 05, 2013, 09:07:48 pm par Macrob »

actuenligne

  • Full Member
  • ***
  • Messages: 129
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #10 le: Janvier 06, 2013, 11:24:23 am »
Avec SFML 2, tu peux tout simplement faire :
sf::Vector2i position = sf::Mouse::getPosition(window);
N'oublie pas de mettre ta fenêtre en paramètre, sans quoi tu auras la position relative au bureau   ;)

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : [SFML 2.0] default view
« Réponse #11 le: Janvier 06, 2013, 08:04:03 pm »
Ok, merci beaucoup ! Problem solved  :)