Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: max223 le Mai 11, 2015, 08:00:00 pm

Titre: fenetre
Posté par: max223 le Mai 11, 2015, 08:00:00 pm
Salut,

je pense que la question a souvent été posée mais voilà j'aimerai savoir comment je pourrai centrer les éléments. Par défaut lorsque je lance le programme les textes sont bien centrés mais voilà lorsque je change la fenêtre je ne peux plus cliquer sur les boutons :

voici le bout de programme

sf::Vector2f windowCenter = sf::Vector2f(window.getSize().x / 2.0f, window.getSize().y / 2.0f);

string str[] = {"1 - Jouer","2 - Quitter"};
    for(int i=0;i<max;i++)
    {
        menu[i].setFont(font);
        menu[i].setCharacterSize(40);
       
        menu[i].setString(str[i]);
        //menu[i].setPosition(1024/2-menu[i].getGlobalBounds().width/2,250+i*120);
       
       menu[i].setOrigin(menu[i].getGlobalBounds().width / 2,menu[i].getGlobalBounds().height / 2-i*250);
        menu[i].setPosition(windowCenter);
 

merci de votre aide  :)
Titre: Re : fenetre
Posté par: kimci86 le Mai 11, 2015, 08:32:08 pm
Bonsoir,

Tu peux recentrer tes objets lorsque la fenêtre est redimensionnée en réagissant à l’évènement sf::Event::Resized. (voir le tutoriel (http://www.sfml-dev.org/tutorials/2.3/window-events-fr.php#lcevcinement-resized))

Edit:
J'en profite pour te faire remarquer que tu peux profiter de la surcharge de l'opérateur de division sur les vecteurs.
sf::Vector2f windowCenter = sf::Vector2f(window.getSize()) / 2.f;
Titre: Re : fenetre
Posté par: max223 le Mai 14, 2015, 01:05:04 pm
merci ça fonctionne maintenant :) plus q'un petit bug a corriger