Autor Wątek: SFML Zatrzymywanie programu podczas kliknięcia w pasek tytułu  (Przeczytany 529 razy)

Offline dsonyy

  • Użytkownik

# Listopad 21, 2017, 17:20:04
Witam.
Piszę nietypową grę w SFML. Zabawa polega na manualnemu zmienianiu rozmiaru okna w odpowiedni sposób. Zauważyłem jednak, że posiadając pętlę główną przedstawioną poniżej, pojawia się następujący problem: przy łapaniu za pasek tytułu lub rogi okna, cały program zostaje zamrożony do momentu zwolnienia przycisku myszy.


...

sf::RenderWindow window(sf::VideoMode(WIDTH, HEIGHT), "Fat Guy",
sf::Style::Resize | sf::Style::Close | sf::Style::Titlebar);

bool running = true;
sf::Clock clock;
sf::Time next_tick = clock.getElapsedTime();

while (running)
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
running = false;
break;
}
}

if (clock.getElapsedTime() >= next_tick)
{
window.clear(sf::Color::Black);
std::cout << ".";
window.display();

next_tick += sf::milliseconds(1000 / FRAME_RATE);
}

}


Czy można w jakiś prosty sposób ominąć ten problem?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Mergul

  • Użytkownik

# Listopad 21, 2017, 19:35:02
Stworzyć własne okno (GUI), w oknie systemowym :P Z oknem systemowym jest taki problem, że w zależności gdzie to odpalisz, to będzie różnie działać :D