Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main()
- {
- const std::vector<sf::VideoMode> videoMode = sf::VideoMode::getFullscreenModes();
- sf::RenderWindow window(videoMode.at(0), "Proste metro");
- setIcon(window);
- sf::View view = window.getDefaultView();
- sf::Event event;
- sf::Font myfont;
- if (!myfont.loadFromFile("arial.ttf"))
- {
- std::cerr << "Could not find contb.ttf font." << std::endl;
- }
- bool newScreen = false, pressedButton = false, isGameSaved = false, resultsShown;
- int programState = 0;// 0 - Głowne menu, 1 - Nowa gra, 2 - Zapisana gra, 3 - wyniki
- float screenCenterX = (float)window.getSize().x / 2, deltaTime = 0.0f;
- setttings set((float)window.getSize().x, (float)window.getSize().y);
- std::vector<gui::button> menu = menuCreation(myfont, screenCenterX, 400.f, programState, set);
- sf::Text gameTitle = setGameTitle(myfont, screenCenterX);
- game myGame(myfont, window.getSize());
- std::vector<sf::Text> textResults;
- std::vector<result> results;
- sf::Text newSeed, newName;
- usefulFunctions funct;
- sf::Text savedGame;
- sf::Clock clock;
- savedGame.setFont(myfont);
- savedGame.setCharacterSize(20);
- savedGame.setString("Zapisana gra");
- savedGame.setOrigin(gameTitle.getGlobalBounds().width / 2, gameTitle.getGlobalBounds().height / 2);
- savedGame.setPosition(sf::Vector2f(screenCenterX / 4, 200.f));//screenCenterX, 400.f
- set.setKeybordShortcut('s');
- string s;
- textBox boxWithText;
- sf::Text textboxName;
- boxWithText.setLimit(10);
- boxWithText.setFont(myfont);
- boxWithText.setName(textboxName);
- boxWithText.setPosition(300.f, 300.f);
- while (window.isOpen())
- {
- deltaTime = clock.restart().asSeconds();
- while (window.pollEvent(event))
- {
- switch (event.type)
- {
- case sf::Event::Closed:
- window.close();
- break;
- case sf::Event::TextEntered:
- if (pressedButton)
- {
- std::regex reg("!~");
- s += static_cast<char>(event.text.unicode);
- if (std::regex_match(s, reg))
- {
- myGame.setMapName(myGame.getMapName() + s);
- }
- s = "";
- }
- if (static_cast<char>(event.text.unicode) == set.getKeybordShortcuts(0))
- {
- myGame.startStopGame();
- }
- break;
- case sf::Event::MouseButtonPressed:
- for (gui::button& button : menu)
- {
- if (button.getState() == gui::state::clicked)
- {
- switch (programState)
- {
- case 0://Start gry
- if (button.getText() == "Wyjscie")
- {
- window.close();
- }
- break;
- case 1://Nowa gra
- if (button.getText() == "Podaj nazwe")
- {
- pressedButton = !pressedButton;
- newName.setFont(myfont);
- newName.setCharacterSize(20);
- newName.setString(myGame.getMapName());
- newName.setOrigin(newName.getGlobalBounds().width / 2, newName.getGlobalBounds().height / 2);
- newName.setPosition(sf::Vector2f(button.getPosition().x, button.getPosition().y - 50));
- }
- else if (button.getText() == "Wygenerowanie losowego ziarna")
- {
- int randomSeed = funct.generateRandomInt(0, 10000);
- newSeed.setFont(myfont);
- newSeed.setCharacterSize(20);
- newSeed.setString(std::to_string(randomSeed));
- newSeed.setOrigin(newSeed.getGlobalBounds().width / 2, newSeed.getGlobalBounds().height / 2);
- newSeed.setPosition(sf::Vector2f(button.getPosition().x, button.getPosition().y - 50));
- myGame.setMapSeed(randomSeed);
- }
- break;
- case 2://zapisana gra
- break;
- case 3://Wyniki
- break;
- case 4://Ustawienia
- break;
- case 5://Gra
- break;
- case 6://Zmiena skrotow klawiszowych
- break;
- case 7://Zapisz gre
- break;
- default:
- break;
- }
- }
- }
- break;
- case sf::Event::Resized:
- window.setSize({ (event.size.width), (event.size.height) });
- window.setView(view);
- myGame.setScreenSize(window.getSize());
- break;
- default:
- break;
- }
- }
- myGame.update(event, window);
- boxWithText.update(event, window);
- for (gui::button& button : menu)
- {
- std::cout << "2. TimeToNextInteraction: " << button.getTimeToNextInteraction() << "\n";
- button.update(event, window);
- if (button.getState() == gui::state::clicked)
- {
- button.setTimeToNextInteraction(button.getTimeToNextInteraction() - deltaTime);
- std::cout << "3. TimeToNextInteraction: " << button.getTimeToNextInteraction() << "\n";
- switch (programState)
- {
- case 0://Start gry
- if (button.getText() == "Nowa gra")
- {
- programState = 1;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Zaladuj zapisana gre")
- {
- programState = 2;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Wyniki")
- {
- programState = 3;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Ustawienia")
- {
- programState = 4;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Wyjscie")
- {
- window.close();
- }
- break;
- case 1://Nowa gra
- if (button.getText() == "Podaj nazwe")
- {
- button.setState(1);
- }
- else if (button.getText() == "Wygenerowanie losowego ziarna")
- {
- button.setState(1);
- }
- else if (button.getText() == "Wybranie wielkosci mapy")
- {
- button.setState(1);
- }
- else if (button.getText() == "Rozpoczecie gry")
- {
- programState = 5;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Powrot")
- {
- programState = 0;
- button.setState(1);
- newScreen = true;
- }
- break;
- case 2://zapisana gra
- if (button.getText() == "Wybor zapisu")
- {
- button.setState(1);
- }
- else if (button.getText() == "Dalsze granie")
- {
- button.setState(1);
- programState = 5;
- newScreen = true;
- }
- else if (button.getText() == "Powrot")
- {
- programState = 0;
- button.setState(1);
- newScreen = true;
- }
- break;
- case 3://Wyniki
- if (button.getText() == "Wyświetl wyniki")
- {
- programState = 3;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Schowaj wyniki")
- {
- programState = 3;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Powrot")
- {
- programState = 0;
- button.setState(1);
- newScreen = true;
- }
- break;
- case 4://Ustawienia
- if (button.getText() == "Zmien skroty klawiszowe")
- {
- programState = 6;
- button.setState(1);
- newScreen = true;
- }else if (button.getText() == "Powrot")
- {
- programState = 0;
- button.setState(1);
- newScreen = true;
- }
- break;
- case 5://Gra
- if (button.getText() == "Zapisz gre")
- {
- programState = 5;
- button.setState(1);
- myGame.saveGame();
- isGameSaved = true;
- newScreen = true;
- }
- else if (button.getText() == "Powrot")
- {
- myGame.reset();
- programState = 0;
- button.setState(1);
- isGameSaved = false;
- newScreen = true;
- }
- else if (button.getText() == "Dodaj stacje")//Add one station Dodaj stacje
- {
- programState = 5;
- button.setState(1);
- isGameSaved = false;
- newScreen = true;
- myGame.addStation();
- }
- break;
- case 6://Ustawienia klawiszy
- if (button.getText() == "0: " + set.getKeybordShortcuts(0))
- {
- programState = 6;
- button.setState(1);
- newScreen = true;
- } else if (button.getText() == "Powrot")
- {
- programState = 4;
- button.setState(1);
- newScreen = true;
- }
- break;
- case 7://Ustawienia klawiszy
- if (button.getText() == "0: " + set.getKeybordShortcuts(0))
- {
- programState = 6;
- button.setState(1);
- newScreen = true;
- }
- else if (button.getText() == "Powrot")
- {
- programState = 4;
- button.setState(1);
- newScreen = true;
- }
- break;
- default:
- break;
- }
- }
- }
- if (window.isOpen())
- {
- window.clear();
- if (programState == 0)
- {
- window.draw(gameTitle);
- }
- else if (programState == 1)
- {
- window.draw(newSeed);
- window.draw(newName);
- }
- else if (programState == 3)
- {
- }
- else if (programState == 5)
- {
- window.draw(myGame);
- if (isGameSaved)
- {
- window.draw(savedGame);
- }
- }
- for (gui::button& button : menu)
- {
- window.draw(button);
- }
- window.display();
- }
- else
- {
- break;
- }
- if (newScreen)
- {
- menu = menuCreation(myfont, screenCenterX, 400.f, programState, set);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment