Witam , problem jest następujący: Stworzyłem menu w SFML , opcje wyboru działają ( wyświetla się w konsoli napis: " Opcja została wybrana " ) , lecz nie wiem jak zrobić , aby po kliknięciu w "Play" otwierało się nowe okno z grą .
#include <SFML/Graphics.hpp> #include <iostream> #include "menu.h" int main() { sf::RenderWindow oknoAplikacji(sf::VideoMode(600 , 600) , "Okno_Menu" , sf::Style::Fullscreen); Menu menu(oknoAplikacji.getSize().x, oknoAplikacji.getSize().y); sf::Sprite tlo; sf::Texture tekstura; if (!tekstura.loadFromFile("air-hockey.png")) { std::cout << "Bład"<< std::endl; } tlo.setTexture(tekstura); sf::Font czcionka; if(!czcionka.loadFromFile("Mecha.ttf")) { std::cout << "Blad"<< std::endl; } sf::Text tekst; tekst.setFont(czcionka); tekst.setString("Air Hockey"); tekst.setCharacterSize(100); tekst.setColor(sf::Color::White); tekst.setPosition(780 , 100); while(oknoAplikacji.isOpen()) // dopoki okno jest otwarte { sf::Event zdarzenie; while(oknoAplikacji.pollEvent(zdarzenie)) // dopoki w "magazynie zdarzen" znajduje sie jakies zdarzenie { switch(zdarzenie.type) { case sf::Event::KeyReleased: switch(zdarzenie.key.code) { case sf::Keyboard::Up: menu.gora(); break; case sf::Keyboard::Down: menu.dol(); break; case sf::Keyboard::Return: switch (menu.wybranaopcja()) { case 0: std::cout << "Klawisz Play zostal wybrany"<< std::endl; ( W tym miejscu chciałbym aby otwierało się nowe okno z grą ) break; case 1: std::cout << "Klawisz Settings zosal wybrany"<< std::endl; break; case 2: oknoAplikacji.close(); break; } }break; case sf::Event::Closed: oknoAplikacji.close(); break; case sf::Event::Resized: sf::FloatRect visibleArea(0 , 0 , zdarzenie.size.width , zdarzenie.size.height); oknoAplikacji.setView(sf::View(visibleArea)); break; } } oknoAplikacji.clear(); oknoAplikacji.draw(tlo); menu.draw(oknoAplikacji); oknoAplikacji.draw(tekst); oknoAplikacji.display(); // wyswietlamy ekran } return 0; }
Czy zna ktoś jakieś rozwiązanie ? // W razie potrzeby załączę pozostały kod z pliku menu.cpp i menu.h