Я пытаюсь создать несколько классов, содержащих текстуры & спрайты, использующие SFML. Когда я создаю объект класса в библиотеке SFML в моем классе - я не могу использовать этот объект в основном. Интересно, как отобразить спрайт в основной (например):Использование объекта вне класса
class MainMenu
{
public:
int DrawMenu(){
sf::Texture texture;
if (!texture.loadFromFile("idle.png"))
return EXIT_FAILURE;
sf::Sprite spritemenu(texture);
return 0;
}
};
int main()
{
// Create the main window
sf::RenderWindow app(sf::VideoMode(800, 600), "SFML window");
// Load a sprite to display
sf::Texture texture;
if (!texture.loadFromFile("cb.bmp"))
return EXIT_FAILURE;
sf::Sprite sprite(texture);
MainMenu menu;
// Start the game loop
while (app.isOpen())
{
// Process events
sf::Event event;
while (app.pollEvent(event))
{
// Close window : exit
if (event.type == sf::Event::Closed)
app.close();
}
// Clear screen
app.clear();
// Draw the sprite
app.draw(sprite);
menu.DrawMenu();
app.draw(spritemenu);
// Update the window
app.display();
}
return EXIT_SUCCESS;
}
Помните, что когда DrawMenu заканчивает, локальные переменные выходят за рамки. Может быть, вам нужны переменные-члены класса вместо локальных переменных (поэтому они существуют после завершения DrawMenu)? – drescherjm
да, конечно. как заставить его работать? – Pawel