czwartek, 9 marca 2017

Eksploracja - interakcja z przedmiotami - część 1.

Cześć Wam!

Możemy już pospacerować naszym bohaterem po okolicy, nadszedł więc czas, by trochę to podróżowanie urozmaicić.

Przedmiotów, z którymi będziemy mogli wejść w interakcję w grze będzie multum - skrzynie ze skarbami, półki z książkami, dźwignie, drzwi, łóżka, ogniska, magiczne kręgi, portale, leżące luzem przedmioty, ciała, itd. łatwo można by ciągnąć tę listę przez kolejnych kilka postów, ale konia z rzędem temu, komu chciałoby się to wszystko czytać.



Podanych przykładów wystarczy jednak, by zauważyć, że interakcje mogą być bardzo różnorodne. Mogłoby się wręcz wydawać, że niektóre nie mają ze sobą nic wspólnego. To może zagadka? Co łączy przechodzenie przez magiczny portal z rozpalaniem ogniska? 

Zanim przejdziecie dalej, spróbujcie poszukać podobieństw samodzielnie. Może nawet pokusicie się o zapisanie ich w komentarzach? Chętnie poczytam Wasze pomysły! :)

No dobra, czas na moje rozwiązanie.
  1. Obie te interakcje wymagają podejścia do obiektu, którego będzie ona dotyczyć.
  2. Obie mogą wymagać posiadania odpowiednich przedmiotów, np. drewna i rozpałki w przypadku ogniska lub odpowiedniego kamienia runicznego przy portalu.
  3. Obie interakcje mogą mieć fazę przygotowywania - rozmiecenie ognia i inkantacja.
  4. No i na koniec użycie właściwe, pieczenie kiełbasek i przeniesienie się w czasie i / lub przestrzeni.
Teoretycznie dla każdego rodzaju interakcji moglibyśmy przygotować osobny skrypt, który by ją opisywał, jednak skończyłoby się to bardzo dużą ilością linijek kodu w projekcie. A jak wiadomo nie ilość się liczy, a jakość.

W tym momencie możemy wszyscy podziękować twórcom programowania obiektowego, za cudowny mechanizm nazywany dziedziczeniem. W tym opisywanym zagadnieniu będziemy obficie z niego czerpać.

W tej chwili w projekcie możecie zobaczyć zupełnie podstawową implementację opisanej idei. Mamy ogólny skrypt dla obiektów interaktywnych, który sprawdza, czy postać gracza znalazła się w odpowiednim miejscu i skrypt skrzyni, dziedziczący po powyższym i dodający jej otwarcie.

W następnej notce postaram się przedstawić pierwszą wersję schematu dziedziczenia przedmiotów interaktywnych. Będzie on tylko na tyle rozbudowany, ile wymaga tego obecny, mocno prototypowy, sposób pracy.

Dzięki za lekturę i ponownie zachęcam do publikowania swoich rozwiązań w komentarzach :)

Brak komentarzy:

Prześlij komentarz