Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML, C++] Obrót śmigła po wciśnięciu klawisza myszy

Ostatnio zmodyfikowano 2011-08-13 21:36
Autor Wiadomość
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:
C/C++
#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() ) //kiedy oknoAplikacji otwarte wykonuj:
    {
        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;
}
P-39092
DejaVu
» 2011-08-13 18:38:56
Wykorzystaj bezpośredni dostęp do klawiatury/myszy jeżeli chcesz aby coś wykonywało się co klatkę.

http://cpp0x.pl/kursy/Kurs-SFML-C++ /Bezposredni-dostep-do-klawiatury-myszy-i-joysticka/330
P-39107
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.
P-39114
RoinarN
Temat założony przez niniejszego użytkownika
» 2011-08-13 21:36:20
Imralav dzięki, teraz dobrze działa...
P-39115
« 1 »
  Strona 1 z 1