Wpis z mikrobloga

Mirki, użyję was jako "żółtej gumowej kaczuszki". Otóż piszę grę point'n'click i chcę sobie stworzyć uniwersalny algorytm, który będzie odpowiadał za obsługę działań gracza w danej lokacji. Nie chodzi tu o przemieszczanie się, bo to banalnie proste. Otóż gracz wchodzi do lokacji 12.

Procedura ładuj grafikę 12
Procedura ładuj strefy myszy (miejsca gdzie można kliknąć) 12,
ew Procedura ładuj opis
ew Procedura zmień muzykę na 12

Teraz tak. Pierwsze 4 strefy myszy idą na kierunki, ponieważ zamiast strzałek gdzieś na dole czy z boku będzie się zmieniał kursor myszy. Kolejne strefy na miejsca gdzie można kliknąć. I teraz tak, musiały by być kilka rodzajów, strefa gdzie jest jakiś przedmiot, strefa do interakcji i/lub interakcji z danym przedmiotem, oraz np dialog, informacja, że drzwi są zamknięte np, lub możliwość rozmowy.

Próbuję to rozwiązać na tablicach, ponieważ AMOS nie ma zbyt rozbudowanej struktury. A więc, gracz klika na strefę 5, gdzie leży przedmiot, pierwsze kliknięcie = równe informacja o nazwie przedmiotu. Po kliknięciu na "Opis" = opis tego przedmiotu, a "Weź" wiadomo co.

Dalej. Jeżeli jest aktywowana strefa na osobnym ekranie (kwestie techniczne z ograniczoną paletą OCS) jakiegoś przedmiotu, czyli gracz powiedzmy kliknął na klucz, i teraz na tym pierwszym ekranie kliknie na strefę 6, czyli opowiedzmy drzwi, pojawia się komunikat, że może użyć klucza, albo po prostu informacja "drzwi są teraz otwarte" i powiedzmy strefa 1 (czyli północ) staje się aktywna, i gracz może przejść do następnej lokacji, albo odwrotnie, informacja "ten klucz nie pasuje".

Czyli na przykładzie przedmiot(lokacja)=1 to znaczy że sobie leży w danym miejscu, 2 = że jest u gracza, 0 = że został użyty, tak dla uproszczenia.

No i osobna procedura od dialogów, gdy się już je aktywuje, powiedzmy z barmanem, wczytują się dialogi dla tego NPCa, a ich wybory powodują określoną modyfikację parametrów np dostępności do przedmiotów, aktywacji strefy, gdzie można kliknąć, lub zmienić stan danej strefy (czyli gadamy z barmanem i pozwala graczowi wziąć powiedzmy pogrzebacz) lub 0aktywacji danego kierunku, czyli przepuszcza gracza na zaplecze.

Jak wspomniałam będę używać tablic zmieniają ich parametry i próbuję to ubrać w jakiś algorytm. Chodzi o to, żeby nie robić osobnych procedur dla każdej lokacji. Dobrze kombinuję?

#programowanie #amos #amiga #kiciochpyta
  • 6
@xandra:
Bardziej by pasowało jedną procedurę z parametrami, np:
Procedura ŁadujLokacje(grafika, tablicastrefy, tablica_opis, muzyka)

Nie pamietam czy w Amosie można robić struktury czy tylko same tablice.
Bo można by stroć strukturę opisujaca daną strefę:

typedef struct
{
int rodzaj;
int x0,x1, y0,y1,
char* opis;
} sStrefa;

a potem tablicę tych struktur
sStrefa Strefy_Salonu[10];

A jak nie to jakos sprytanie to zastapic samymi tablicami
@ZawzietyRobaczek: Myślałam jeszcze o skrypcie. W sensie: plik tekstowy o strukturze

.#12 - nr lokacji, którą sobie wyszukuję przez search, a potem zakodowane poszczególne akcje, w jakimś sensownym formacie, że jest jedna procedurka, która to parsuje na kolejne podprocedury warunkowe czy wykonawcze, o jakiejś sensownej strukturze... I właśnie w tej strukturze pies jest pogrzebany. Ale chyba to rozgryzę ;)
@ZawzietyRobaczek: Rozwijając temat skryptu, który daje mi dużo więcej możliwości w tworzeniu struktur. Kolejne lokacje mają mają swoje numery, a więc np #12, potem definicje stref myszy, potem instrukcje warunkowe i wykonawcze, czyli przykładowo

#12
laduj obrazek
włącz boba z przedmiotem (jeśli on tam jeszcze jest) lub z elementem tła który miałby być zmieniany
definiuj 3 tablice o wymimiarach x1,y1,x2,y2 itd
instrukcje warunkowe na strefach i tu zakodowane co ma