Skocz do zawartości
Forum Programowanie
Zaloguj się, aby obserwować  
Sianoo

[SFML] Odczytywanie pozycji sprajtów i myszy

Polecane posty

Witam,

Jestem początkującym programistą i ostatnio natknąłem się na kurs biblioteki SFML. Nie było w nim za wiele na temat odczytywania bieżących pozycji myszy i sprajtów. Ostatnio pisząc pewną aplikację natknąłem się na problem z tym fragmętem kodu:

 sf::Event zdarzenie;
   	while( oknoAplikacji.GetEvent( zdarzenie ) )
       	{
           	if (zdarzenie.Type == sf::Event::Closed)
               	oknoAplikacji.Close();

           	if ((zdarzenie.Type == sf::Event::MouseButtonPressed) && (zdarzenie.MouseButton.Button == sf::Mouse::Left))
           	{

               	if (((zdarzenie.MouseMove.X >= person_button.GetPosition().x) && (zdarzenie.MouseMove.Y >= person_button.GetPosition().y)) && ((zdarzenie.MouseMove.X <= person_button.GetPosition().x+50) && (zdarzenie.MouseMove.Y <= person_button.GetPosition().y+41)))
               	{
                   	oknoAplikacji.Close();
               	}
           	}
       	}

 

Ten fragmęt odczytuje Eventy. Chodzi mi o to, by po kliknięciu na sprajt(wymiary to 50x41) aplikacja zamykała się.

 

Z góry thx.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Temat dawno nieaktualny, ale mimo to napiszę rozwiązanie - może komuś się przyda.

 

Ja w swojej grze rozwiązałem to tak, że tworzę nowy, praktycznie niewidoczny sprite 1x1, który aktywnie podąża za kursorem:

sf::Image img_cursor;
img_cursor.Create(1, 1, sf::Color::Black);
sf::Sprite cursor;
cursor.SetImage(img_cursor);
/// Blablabla
while(1)
{
cursor.SetPosition(sterowanie.GetMouseX(), sterowanie.GetMouseY());

gdzie sterowanie to:

const sf::Input &sterowanie = okno->GetInput();

gdzie okno to wskaźnik sf::RenderWindow* :P

 

W przypadku kolizji przycisku z pseudokursorem (używając PixelPerfectTest z tego) oraz wciśnięciu LPM ma wykonać kod.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×