MaxGaming Opublikowano 18 Czerwca 2018 Udostępnij Opublikowano 18 Czerwca 2018 Siemanko, mam taki problem. Tworzę grę z myślą o androidzie(obsługa multidotyku, prawdopodobnie 2 punktowego wystarczy). Teraz stanąłem przed drobnym ale upierdliwym problemem, a że dawno nie robiłem gierek i trochę wyszedłem z wprawy w myśleniu analitycznym :/ Mam HUD(nieregularny kształt). Jak zrobić, aby na przykład naciskając na element HUDu nie naciskać automatycznie na obiekt znajdujący się pod nim? Teraz na przykład wybierając rodzaj amonicji, jeśli pod przyciskiem znajduje się jednocześnie przeciwnik to namierzamy go... Podobnie jeśli pozycje dwóch przeciwników nakładają się na siebie co zrobić żeby po naciśnięciu reagował tylko obiekt wyżej? Przykład. Co jeśli miejsce naciśnięcia(zielony punkt) znajduje się na GUI(czerwony kwadrat), ale jednocześnie na obiekcie pod nim(pomarańczowy kształt)? Jak wtedy sprawić aby zareagował tylko obiekt GUI a nie oba? Należy wziąć pod uwagę wsparcie multidotyku które mocno utrudnia sprawę... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 18 Czerwca 2018 Udostępnij Opublikowano 18 Czerwca 2018 Może zrób jakąś globalną zmienną powiedzmy o nazwie "HudClick" i ustawiaj ją co stepa na false a gdy klikniesz coś na hudzie, ustaw na true. I teraz każda interakcja obiektów gry z myszką powinna sprawdzać dodatkowo czy HudClick == false by akcja się odbyła MaxGaming 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 18 Czerwca 2018 Autor Udostępnij Opublikowano 18 Czerwca 2018 Myślałem o tym, ale co jak najpierw wykryje obiekt przeciwnika kliknięcie, potem HUD i ustawi zmienną za późno? I co zrobić z tym żeby nie było takiej akcji że jednym palcem kierujemy drążkiem na hudzie, drugim naciskamy na przeciwnika i... nic bo naciskając na hud przestawia się zmienna? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 18 Czerwca 2018 Udostępnij Opublikowano 18 Czerwca 2018 resetuj w begin stepie a obiekty niech sprawdzają w zwykłym stepie. W zasiadzie to Hud powinien zmieniać tę zmienną tylko w begin. Broń boże w draw bo się kolejność posypie MaxGaming 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 18 Czerwca 2018 Autor Udostępnij Opublikowano 18 Czerwca 2018 Dobra pokminiłem i znalazłem pewniejszy sposób. Każdy element HUDu jest dzieckiem pHUD i sprawdzam podczas naciskania na cokolwiek co nie jest elementem hudu jaka jest odległość kliknięcia od najbliższego pHUD i jeśli jest równe 0 to wtedy nie wykonuje się event. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 18 Czerwca 2018 Udostępnij Opublikowano 18 Czerwca 2018 Z tym że to jest "pewne" coś co ma się wykonać w begin, zawsze się wykona pierwsze niż w step. Niezależnie od ilości obiektów po to te eventy są MaxGaming 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 18 Czerwca 2018 Autor Udostępnij Opublikowano 18 Czerwca 2018 Ale czasami z różnych powodów w różnych grach zdarzało się, że musiałem niektóre kliknięcia wyjątkowo sprawdzać w begin. Myślę że to rozwiązanie jest lepsze, ale pewnie na dłuższą metę odkryję jakieś minusy tego patentu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Czerwca 2018 Administratorzy Udostępnij Opublikowano 19 Czerwca 2018 ja też robię tak, że gui wykrywam w begin stepie, jak się coś kliknie to ustawiam glolbal.gui_clicked = true;, a w end stepie albo na początku begin stepa (jeśli tylko jeden obiekt sprawdza eventy GUI) znów ustawiasz global.gui_clicked = false; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się