Sianoo Napisano Maj 9, 2012 Zgłoś Share Napisano Maj 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 do komentarza Udostępnij na innych stronach More sharing options...
MacMercury Napisano Styczeń 26, 2013 Zgłoś Share Napisano Styczeń 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 do komentarza Udostępnij na innych stronach More sharing options...
Placek22 Napisano Kwiecień 12, 2015 Zgłoś Share Napisano Kwiecień 12, 2015 jak to rozwiązałeś? bo ja mam 2 takie problemy Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.