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

SFML - detekcja kliknięcia na sprite.

Ostatnio zmodyfikowano 2011-10-06 19:04
Autor Wiadomość
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.
P-41763
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).
P-41764
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?
P-41765
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.
P-41766
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
P-41767
akwes
» 2011-10-05 19:21:50
@up
Jego pytanie nie dotyczyło GUI tylko kolizji...
P-41768
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ą...)
P-41769
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.
P-41770
« 1 » 2
  Strona 1 z 2 Następna strona