Bonjour j'essai de creer un menu souris asser simple mais je n'arrive pas a afficher le texte de la class que j'ai faite, je pense que le probleme est dans le .cpp :#include "menu.h"
icon::icon(sf::Vector2f position, sf::Vector2f size, std::string textString)
{
font.loadFromFile("GoogleSans-Bold.ttf");
name.setFont(font);
name.setCharacterSize(24);
name.setFillColor(sf::Color::Black);
name.setPosition(position);
name.setString(textString);
}
void icon::draw(sf::RenderWindow& window)
{
window.draw(name);
}
le .h :#ifndef MENU_H
#define MENU_H
#include <SFML/Graphics.hpp>
#include <string>
class icon{
public:
icon(sf::Vector2f position, sf::Vector2f size, std::string textString);
void draw(sf::RenderWindow& window);
protected:
sf::Text name;
sf::Font font;
};
#endif
la fenetre se ferme dans l'instant et on me parle de violation d'accès :/
merci pour votre aide.
Oui je vois mais le fait est que je ne crois pas utiliser de pointer :int main()
{
std::vector<icon> allmenu; // position, size, text
allmenu.push_back(icon(sf::Vector2f(5, 115), sf::Vector2f(200, 50), "Search...")); //allmenu[0] search icon
allmenu.push_back(icon(sf::Vector2f(5, 5), sf::Vector2f(200, 50), "1")); //allmenu[1] button anime 1
allmenu.push_back(icon(sf::Vector2f(5, 60), sf::Vector2f(200, 50), "1000")); //allmenu[2] button anime 1000
allmenu.push_back(icon(sf::Vector2f(5, 170), sf::Vector2f(200, 50), "animation")); //allmenu[3] button animate
sf::RenderWindow window(sf::VideoMode(500, 500), "test");
window.setKeyRepeatEnabled(false);
while(window.isOpen())
{
window.clear(sf::Color::White);
for (int i(0); i < allmenu.size(); i++)
{
allmenu[i].draw(window);
}
window.display();
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
{
window.close();
}
}
}
return 0;
finalement j'ai reussi a le faire marcher en faisant :void icon::draw(sf::RenderWindow& window)
{
name.setFont(font);
window.draw(name);
}
au lieu de : void icon::draw(sf::RenderWindow& window)
{
window.draw(name);
}
mais ca m'embete de ne pas savoir ce qui ne fonctionnait pas pour ne pas refaire l'erreur.