Witam, ostatnio odczytywałem współrzędne myszy w wątku, jednak wtedy program się sypał.
Wie ktoś może dlaczego tak się dzieje?
#include "Button.h"
Button button("3D");
sf::RenderWindow window(sf::VideoMode(500, 500), "Graph");
sf::Event event;
sf::Mouse mouse;
void thread_function()
{
while(window.isOpen())
{
sf::Vector2f position = sf::Vector2f(mouse.getPosition(window));
button.setPosition(position);
sf::sleep(sf::seconds(1));
}
}
int main()
{
window.setFramerateLimit(60);
button.setWindow(window);
button.setMouse(mouse);
sf::Thread thread(&thread_function);
thread.launch();
while(window.isOpen())
{
window.clear(sf::Color(31, 31, 31));
while(window.pollEvent(event))
{
if(event.type == sf::Event::Closed)
window.close();
}
window.draw(button);
window.display();
}
}
Dałem tutaj opóźnienie 1s, bo wtedy przynajmniej przez kilka sekund się nie sypie, a później po prostu okno znika, program przestaje działać (mimo, że nie klikałem na krzyżyk).