#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
sf::RenderWindow Fenetre(sf::VideoMode(1000, 900), "Ma fenetre"); // Creer la fenetre
Fenetre.setPosition(sf::Vector2i(450, 50)); // positionne la fenetre par rapport au bureau
Fenetre.setTitle("Mastermind2.0");
Fenetre.setVerticalSyncEnabled(true); //active la sync vertical
void menu();
menu();
/*----------------------------------------------------------------------------------------------------*/
while (Fenetre.isOpen())
{
sf::Event event;
while (Fenetre.pollEvent(event))
{
if (event.type == sf::Event::Closed)
Fenetre.close();
}
Fenetre.draw(rect);
Fenetre.display();
Fenetre.clear(sf::Color(255, 255, 255));
}
return 0;
}
void menu()
{
sf::RectangleShape rect(sf::Vector2f(300, 50));
rect.setOutlineThickness(5);
rect.setOutlineColor(sf::Color(0, 0, 0));
rect.setPosition(30, 200);
}
Sur la ligne 27. La fonction main ne reconnais pas 'rect', normal car c'est dans une autre fonction. Pouvez vous m'indiquez la solution et l’explication qui va avec si possible, c'est un code assez simple mais je bute à chaque fois sur les paramètres des fonctions, car je connais peu SFML.
Merci de prendre le temps de me répondre.
- Edité par pierreforques 21 janvier 2019 à 21:27:51
Ce n'est pas une question de connaître ou non la SFML, ce n'est ni plus ni moins que le comportement normal d'un code C++. La variable rect n'est pas connue en dehors du scope de la fonction menu() et est détruite en fin de scope de celle-ci (comme toutes les variables dans le scope d'une fonction).
À la limite ce qui pourrait être envisageable, c'est de créer une classe Menu et de la rendre "dessinable" en faisant hériter cette classe de sf::Drawable puis en redéfinissant la fonction draw(...).
Merci de ta réponse rapide ! Je vais travailler/étudier sur ce que tu m'as dis et je reviens vers toi si j'ai d'autres questions.
Merci.
SFML, afficher un rectangle hors main
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
...