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

Auteur Sujet: [Résolu] [SFML2] sf::View qui redimensionne un sf::Sprite  (Lu 2253 fois)

0 Membres et 1 Invité sur ce sujet

nicooomg

  • Jr. Member
  • **
  • Messages: 66
    • Voir le profil
[Résolu] [SFML2] sf::View qui redimensionne un sf::Sprite
« le: Janvier 10, 2013, 12:57:13 am »
Bonjour :)

J'ai un problème en utilisant une view.

Voici le code, lorsque je charge ma texture de fond, je configure ma view:

        if(load_map_order>=0)
        {
            // chargement de la map

            m_game.getRenderer().mapView().setSize(800, 600-getToolboxHeight());
            m_game.getRenderer().mapView().setCenter(400, (600-getToolboxHeight())/2);
            load_map_order = -1;
        }

Et bien sur, l'affichage:
        if(m_game.getRenderer().hasMapTexture())
        {
           /// mise à jour de la vue, pour le scrolling, la fonction n'appelle que sf::View::move
            m_game.getRenderer().updateViews({0, 0, 0, getToolboxHeight()/2});
          /// on prend la vue pour le scrolling
            App.setView(m_game.getRenderer().mapView());
          /// dessine la map
            App.draw(m_game.getRenderer().mapSprite());
          /// vue normale !
            App.setView(App.getDefaultView());
        }


Le problème, c'est que.. voici un screenshot en fichier joint!

Quel est le problème ?

Merci d'avance,

nico


[attachment deleted by admin]
« Modifié: Janvier 10, 2013, 02:39:43 pm par nicooomg »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] sf::View qui redimensionne un sf::Sprite
« Réponse #1 le: Janvier 10, 2013, 07:46:01 am »
Si ta vue affiche une portion plus petite de la scène, mais toujours dans la même zone de la fenêtre, forcément ce qui est affiché va être étiré. Si tu veux limiter la zone d'affichage également, il faut jouer avec le viewport.
Laurent Gomila - SFML developer

nicooomg

  • Jr. Member
  • **
  • Messages: 66
    • Voir le profil
Re : [SFML2] sf::View qui redimensionne un sf::Sprite
« Réponse #2 le: Janvier 10, 2013, 09:49:13 am »
Ah en effet !

Pour obtenir une vue plus petite , en gardant les memes dimensions, si vous avez un rectangle en bas de votre ecran...:

            m_game.getRenderer().mapView().setSize(800, 600-getToolboxHeight());
            m_game.getRenderer().mapView().setCenter(400, (600-getToolboxHeight())/2);
            m_game.getRenderer().mapView().setViewport({0, 0, 1, (600.f-getToolboxHeight())/600.f});

Merci L.G