blojayble Temat założony przez niniejszego użytkownika |
SFML - detekcja kliknięcia na sprite. » 2011-10-05 18:11:49 Witam.
Mam pytanie, być może głupie i oczywiste, szukałem na nie odpowiedzi w internecie, w tutorialach o tym nie pisało więc w myśl zasady "kto pyta nie błądzi" postanowiłem założyć temat.
Sprawa jest taka.
Piszę sobie menu do gry, mam w nim kilka "przycisków". Są to sprite'y. Chciałbym się Was spytać, czy jest jakaś prosta metoda, aby wykryć czy przycisk został naciśnięty kursorem. Jest możliwość aby wykryć kliknięcie i porównać koordynaty kursora z rozmiarem przycisku, ale to rozwiązanie nie jest dla mnie satysfakcjonujące, a i może sprawiać później problemy.
Z góry dziękuję za wszelką formę pomocy.
Pozdrawiam. |
|
akwes |
» 2011-10-05 18:19:39 Dlaczego nie jest satysfakcjonujące?
Głównie chodzi o to właśnie że kliknięcie zostało wykonane w obszarze przycisku. Ewentualnie sprawdzić, który z wciśniętych przycisków jest najbardziej na górze (jeżeli zachodzą na siebie). |
|
blojayble Temat założony przez niniejszego użytkownika |
» 2011-10-05 18:29:53 A jeżeli np. mam samochód, który ma nieregularny kształt i chciałbym aby to działało dokładnie? Co wtedy? |
|
akwes |
» 2011-10-05 18:34:09 Używasz etapów kolizji.
1. Bardzo niedokładny etap, wręcz sprawdzanie na oko. 2. Etap nachodzenia na siebie kwadratów/kół 3. Sprawdzanie kolizji per pixel. Konkretnie chodzi o to aby sprawdzić czy najechały już na siebie piksele inne niż te z 100% alpha. Oczywiście możesz sobie ustalić próg że np. dopiero przy pikselach z alphą 70% mówi o kolizji. Aby to zrobić dobrze trzeba najlepiej obliczyć kierunek z którego następuje przecięcie i sprawdzać kolejno piksele.
Używanie samego punktu 3 grozi bardzo słabym FPS przy wielu obiektach, dla których liczone są kolizje. |
|
Mrovqa |
» 2011-10-05 19:10:38 Powiem szczerze, że po części też się zawiodłem. Są podobno na internecie jakieś amatorskie i niedopracowane GUI. Sam pracuję nad podobnym :D Zawsze możesz połączyć SFMLa z WinAPI, Qt, wxWidgets czy inną biblioteką (na oficjalnej stronce SFMLa masz tuty).
Pozdrawiam, Mrowqa |
|
akwes |
» 2011-10-05 19:21:50 @up Jego pytanie nie dotyczyło GUI tylko kolizji... |
|
Mrovqa |
» 2011-10-05 19:31:56 @up Piszę sobie menu do gry, mam w nim kilka "przycisków". Są to sprite'y. Chciałbym się Was spytać, czy jest jakaś prosta metoda, aby wykryć czy przycisk został naciśnięty kursorem. |
To "amatorskie GUI" to chodzi mi głównie o kontrolki... Wtedy po naciśnięciu przycisku Cię informuje. (Wiem, trochę się spóźniłem z odpowiedzią...) |
|
akwes |
» 2011-10-05 19:49:45 Z GUI nie ma problemów, tylko autor tematu chce poznać lepszą kolizję Jest możliwość aby wykryć kliknięcie i porównać koordynaty kursora z rozmiarem przycisku, ale to rozwiązanie nie jest dla mnie satysfakcjonujące
|
A jeżeli np. mam samochód, który ma nieregularny kształt i chciałbym aby to działało dokładnie? Co wtedy?
|
No dobra, ale z mojej strony koniec offtopa. |
|
« 1 » 2 |