Witam.
W jednym z moich programów chciałem połączyć SFML z WinAPI, ale natknąłem się na problem. Otóż nie wiem w jaki sposób mam korzystać z wydarzeń (sf::Event).
Wszelkie próby spełzły na niczym, gdziekolwiek bym nie umieścił GetEvent().
Korzystam z tego kodu:
http://www.sfml-dev.org/tutorials/1.6/graphics-win32.php
Tutaj mały fragment mały fragment zmodyfikowany przez mnie , najistotniejszy:
sf::Event Event;
MSG Message;
bool lol = false;
Message.message = static_cast < UINT >( ~WM_QUIT );
while( Message.message != WM_QUIT )
{
if( PeekMessage( & Message, NULL, 0, 0, PM_REMOVE ) )
{
// If a message was waiting in the message queue, process it
TranslateMessage( & Message );
DispatchMessage( & Message );
}
else
{
while( SFMLView.GetEvent( Event ) )
{
if( Event.Type == sf::Event::KeyPressed && Event.Key.Code == sf::Key::A ) lol = true;
}
// SFML
SFMLView.Clear( sf::Color::Yellow );
if( lol == true ) SFMLView.Draw( sf::Shape::Circle( 30, 30, 30, sf::Color::Blue ) );
//SFMLView.Draw(sf::Shape::Circle(Message.pt.x,Message.pt.y,30,sf::Color::Cyan));
SFMLView.Draw( sf::Shape::Circle( 20, 20, 30, sf::Color::Cyan ) );
SFMLView.Display();
}
}
Wydaje mi się że to nie działa dlatego iż SFMLView jest w hierarchii pod Window, więc to on wszystko zgarnia.
Macie jakiś sposób, czy też pomysł, jak zrealizować to tak, aby można było w miarę normalnie korzystać z wydarzeń?
Dziękuję za wszystkie odpowiedzi.
Pozdrawiam.