[SFML, C++] Obrót śmigła po wciśnięciu klawisza myszy
Ostatnio zmodyfikowano 2011-08-13 21:36
RoinarN Temat założony przez niniejszego użytkownika |
[SFML, C++] Obrót śmigła po wciśnięciu klawisza myszy » 2011-08-13 17:15:50 Witam. Znowu ja :-), mam pewien problem z SFML, aktualnie bawię się z obsługą klawiatury, myszy etc, tak dogłębniej... Napisałem sobie pewien problem, chciałem aby po wciśnięciu prawego klawisza myszy, śmigło wczytane z obrazu zaczęło się obracać. Ok działa, ale obraca się tylko wtedy, kiedy mysz jest w ruchu, np. PPM wciśnięty ale nic się niedzieje, PPM wciśnięty+ruch myszy, dopiero się obraca... Czy to jest tak że z myszą jest zawsze tak że aby powtarzać czynność, mysz musi być w ruchu??? Poniżej zamieszczam kod, z góry dzięki za pomoc: #include <SFML/Graphics.hpp>
using namespace sf;
int main() { RenderWindow okno( VideoMode( 800, 600, 32 ), "Test Smigla" ); okno.SetFramerateLimit( 60 ); Image smiglo; smiglo.LoadFromFile( "smiglo.png" ); Sprite smiglo1; smiglo1.SetImage( smiglo ); smiglo1.SetPosition( 400, 300 ); smiglo1.SetCenter( smiglo.GetWidth() / 2.0f, smiglo.GetHeight() / 2.0f ); const Input & wejscie = okno.GetInput(); while( okno.IsOpened() ) { Event zdarzenie; while( okno.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == Event::Closed ) okno.Close(); if( zdarzenie.Type == Event::KeyPressed && zdarzenie.Key.Code == Key::Escape ) okno.Close(); if( wejscie.IsMouseButtonDown( Mouse::Right ) ) smiglo1.Rotate( 20.01f ); } okno.Clear( Color::White ); okno.Draw( smiglo1 ); okno.Display(); } return 0; } |
|
DejaVu |
» 2011-08-13 18:38:56 |
|
imralav |
» 2011-08-13 21:05:03 Może chodzi o to, że instrukcję warunkową związaną z input'em masz wewnątrz pętli do eventów. Spróbuj ją przenieść zaraz za tą pętlą i daj znać, jak zadziałało. |
|
RoinarN Temat założony przez niniejszego użytkownika |
» 2011-08-13 21:36:20 Imralav dzięki, teraz dobrze działa... |
|
« 1 » |