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

Auteur Sujet: Revenir à l'ancienne gestion du resize  (Lu 4239 fois)

0 Membres et 2 Invités sur ce sujet

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Revenir à l'ancienne gestion du resize
« le: Mai 06, 2013, 06:38:28 pm »
Bonjours,

alors voila j'ai mis à jours sfml 2.0 et là j'ai été surpris par une petite chose assez contraignante à mon goût : quand on resize la fenêtre, les Drawables ne sont plus agrandis (zoom) comme avant (ce que je souhaite) mais on simplement garder leur ancienne places sur la fenêtre qui elle grandit réellement.

Ce que je souhaite est simple : revenir à l'ancienne gestion du resize où tout était zoomer. Comment faire ? Merci d'avance :) .

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Revenir à l'ancienne gestion du resize
« Réponse #1 le: Mai 06, 2013, 07:01:34 pm »
Tu as dû foirer quelque chose, parce que ça n'a pas changé. Ce que tu dessines est toujours étiré aux nouvelles dimensions de la fenêtre, puisque la vue ne bouge pas par défaut. C'est ce qui est expliqué dans le tutoriel, et qui aurait dû te faire remarquer qu'il y avait un problème ;)
Laurent Gomila - SFML developer

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #2 le: Mai 06, 2013, 07:38:48 pm »
Ben chez moi la vu est agrandi en même temps que la fenêtre : tout as bougé mais rien n'a été rediménsionner. Voici un code simple et les deux screens :

#include <SFML/Graphics.hpp>

int main()
{
        sf::Font font;
        font.loadFromFile("DejaVuSansMono.ttf");
        sf::RenderWindow window(sf::VideoMode(800,600,32), "coucou");
        sf::Text label("coucou", font);

        while(window.isOpen())
        {
                window.clear();
                window.draw(label);
                window.display();
        }
}

et les screens :  Sans resize http://imageshack.us/a/img593/8546/201305061903221600x900s.png
Avec resize : http://imageshack.us/a/img824/8647/201305061903291600x900s.png

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Revenir à l'ancienne gestion du resize
« Réponse #3 le: Mai 06, 2013, 08:17:53 pm »
Et avec une boucle d'évènements, ça marche mieux ?
Laurent Gomila - SFML developer

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #4 le: Mai 06, 2013, 08:33:06 pm »
Ah oui ça fonctionne mieux x)

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #5 le: Mai 07, 2013, 12:59:05 pm »
Moi j'ai aussi ce problème mais avec les sprites : quand je fais un scale sur un sprite, le sprite ne s'affiche plus au même endroit.
Donc le centre du sprite n'a pas changé, faut il le remettre à jour soi même quand on redimentionne un sprite.
Par exemple si ma tile fait 100*50 je fais un setOrigin(50, 25), si je fais ensuite un scale et sa nouvelle taille est de 120*60, doit je refaire moi même le setOrigin(60, 30)  pour remettre à jour son nouveau centre ?
Car avec la SFML 1.6 je n'avais pas besoin de le faire.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Revenir à l'ancienne gestion du resize
« Réponse #6 le: Mai 07, 2013, 01:10:22 pm »
Non, l'origine est donnée en coordonnées locales, donc sa définition n'est pas affectée par les diverses transformations que tu fais subir à ton sprite.

Qu'est-ce que tu entends par "le sprite ne s'affiche plus au même endroit" ? Le redimensionnement se fait autour de l'origine, donc si celle-ci se trouve au centre, il est normal que le sprite s'étire dans toutes les directions. Mais son origine, elle, reste au même endroit.
Laurent Gomila - SFML developer

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #7 le: Mai 07, 2013, 03:34:26 pm »
Bah, quand je le redimentionne, le sprite ne s'étire pas à partir de son centre mais il s'étire vers le coin supérieur gauche.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Revenir à l'ancienne gestion du resize
« Réponse #8 le: Mai 07, 2013, 03:53:30 pm »
Dans ce cas ce n'est pas normal. Si tu me postes un code complet minimal (comme celui de gaulois94 ci-dessus) qui reproduit le problème, je pourrais voir ce qui ne va pas.
Laurent Gomila - SFML developer

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #9 le: Mai 09, 2013, 03:11:56 pm »
Ok je vais essayer ça. ;)

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : Revenir à l'ancienne gestion du resize
« Réponse #10 le: Mai 12, 2013, 11:37:27 am »
Oublie ce que j'ai dit, j'ai fais le setScale avant le setOrigin du coup ça le faisais pas à partir du centre, vu que l'origine par défaut c'est 0,0.

 

anything