Sianoo Posted May 9, 2012 Report Share Posted May 9, 2012 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. Link to comment Share on other sites More sharing options...
MacMercury Posted January 26, 2013 Report Share Posted January 26, 2013 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* W przypadku kolizji przycisku z pseudokursorem (używając PixelPerfectTest z tego) oraz wciśnięciu LPM ma wykonać kod. Link to comment Share on other sites More sharing options...
Placek22 Posted April 12, 2015 Report Share Posted April 12, 2015 jak to rozwiązałeś? bo ja mam 2 takie problemy Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.