Skocz do zawartości

Bonus kiedy postać stoi przy ścianie


Rekomendowane odpowiedzi

Witam, wymyśliłem sobie, że zrobię strzelankę top-down, ściany to prosta sprawa poprostu kolizja pocisku z ścianą i pocisk nie przechodzi.

Ale pomyślałem sobie - a co jeśli ściana nie pokrywa całej postaci ? Wymyśliłem sobie, że jeśli postać podchodzi do pół-ścianki to będzie dostawać bonus do "trudności trafienia" w sensie zmiennej która będzie zmniejszać albo niwelować obrażenia z pocisków - lub puszczać je dalej bo przebije/będzie nad ścianką.

Jak to zrobić ? W sensie na jakich komendach ? Jestem zielony jak liście cannabisa i wiem, że to krótki kod nie będzie. Wymyśliłem sobie, że mapa zostanie podzielona na start na kwadraty o wielkości 64 pixele ścianka i jeśli postać znajduje się na takim kwadracie obok ściany to będzie dawać jej bonus załóżmy 50%. Chodzi o coś takiego :

07185662800216372276.png

(Wiem piękny pokaz umiejętności plastycznych :] )

Gdzie szary prostokąt to ściana, czerwone kółko to postać, i jesli pocisk leci z strony lewej to ścianka da bonus mojej postaci, natomiast z prawej - żadnego bonusu, wiem mógłbym spróbować zrobić to sam jednak wiem, że będzie to pełne bugów i szybko się zdenerwuję i porzucę pomysł zanim go zacznę, gdyż jeszcze nie robiłem żadnego dłuższego kodu, więc chcę was, wyjadaczy prosić o pomoc, przybliżcie mi jak to zrobić, na jakich komendach najlepiej, żeby było to najefektywniejsze ( optymalizacja to żaden problem gra jest 2 D i raczej rozbudowana mocno nie będzie więc nie martwie się jakoś stabilnością, chodzi mi o to, żeby system był jak najlepiej zrobiony, żeby dawał mi frajdę, ale chcę to zrobić z waszą pomocą a nie żebyście zrobili kod za mnie bo chce mieć frajdę, motywację, że coś zrobiłem)

Liczę na pomoc i pozdrawiam :)

Odnośnik do komentarza
Udostępnij na innych stronach

Użyj place_free/place_empty, collision_line, point_direction i distance_to_point(mam nadzieje, że dobrze zapisałem). Ew. jeżeli upierasz się na te kwadraty to musisz tylko wyliczyć który to kwadrat dzieląc na rozmiar kwadrata x(co da ci pozycję x) i następnie y. Potem sprawdzasz kwadrat który jest za tobą i sprawdzasz, czy jest wolny(o ile zajmuje na pewno 64 piksele to pół biedy). Ale ogółem uważam, że ten pomysł z kwadratami jest słaby, nieoptymalny i zwyczajnie przekombinowany. Pobaw się lepiej tymi funkcjami które Ci podałem. Najprościej będzie użyć collision_line i sprawdzać, czy coś stoi na przeszkodzie ;)

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...