Skocz do zawartości

Jednoręki bandyta


Rekomendowane odpowiedzi

Siemka, od razu na wstępie muszę powiedzieć, że nie wiele umiem w GMie zresztą pierwszy post (lol). Jednak nie jest tak, że od raz bez elementarnych podstaw zabieram się za nie wiadomo co.

Poczytałem parę poradników, zrobiłem pierwsze gry (złap clowna itd.) i ogólnie jeśli chodzi o proste gierki to dałbym rade coś sklecić.

Problem pojawia się na skryptach i GML, nie wiem jak te skrypty łączyć, niby wiem czego użyć itd ale nie znam dobrze składni, a już najbardziej nienawidzę w składni znaków typu { ; nie raz są i zielonego pojęcia nie mam co powodują.

 

Od jakiegoś czasu zacząłem robić jednorękiego bandytę - symulator (lubię grać na maszynach i postanowiłem sobie zrobić coś takiego ale już na początku wiedziałem, że nie będzie to gra typu złap clowna i niestety kilka rzeczy będzie dla mnie trudnych.

 

Jak na razie zrobiłem pulpit, udało mi się zrobić system losowania symboli ale mam i na pewno będę mieć szereg problemów.

 

aby nie robić litanii postanowiłem wymienić 2 aktualne, bo już na samym początku obiecałem sobie, ze będę się skupiał tylko na istniejącym problemie inaczej się zniechęcę...

 

1. Pierwszym małym problemem jest to aby dany symbol się nie powtarzał (coś np. Sprawdź czy symbol pojawił się na koordynatach x y jeśli tak to nie twórz go na koordynatach x y) Wiem że trzeba tu użyć check, if ale nie wiem jak konkretnie ma to wyglądać... :(

 

2. Drugim może nieco poważniejszym jest sprawdzanie czy te symbole ułożyły się w konkretny sposób np. czy są w prostej linii (no i też jeśli symbol x znajduję się na x y, jeśli 2 symbol znajduje się na x y, jeśli 3 symbol znajduje się na x y i jeśli są jednakowe to...) Moim zdaniem skrypt z problemu pierwszego z powodzeniem mógłby również pomóc i w tym przypadku.

 

Nie muszę mieć gotowców, jeśli ktoś zna jakieś poradniki które mogłyby mi pomóc to będę wdzięczny. Chciałbym też jednocześnie powiedzieć, że wcale nie muszę ukończyć zrobienia tej gry, po prostu wybrałem to sobie jako przykład aby trochę się wmiksować w skrypty i składnie GML

Odnośnik do komentarza
Udostępnij na innych stronach

na poczotek.

 

{} to znaki dla poloczenia wiecej linijek kodu do jednego bloku.

GML
// jedna linijka a+=1;

if (a== true) a+=1; // skrocona verzja if

// jest to samo jako

if (a==true) {a+=1; }

 

//wiecej linijek

// tutaj zawsze vykona sie b i c bo tylko a+=1 jest objete niewidocznym blokiem

if (a== true) a+=1; // skrocona verzja if

b=56;

c=a+b;

 

// by if vykonal b i c to musisz tak

if (a== true) {

a+=1; // skrocona verzja if

b=56;

c=a+b;

};

jak piszesz kod to uwazaj na ; jest on konciem comendy mozest na jednej linijce napisac

GML
a=irandom(5); show_message(string(a) );

 

osobisce blok {} biore za jednom takom linijke i dlatego uzywam ; w if tak

GML
// dla prostego if

if (a==1) {

a+=1;

b=56;

c=a+b;

};

//dla if/else

if (a<=1) {

a+=1;

b=56;

c=a+b;

}

else if (a>1) {

a-=1;

b=56;

c=a+b;

}

else {

a=0;

b=56;

c=a+b;

}; // dopiero tutaj koncze pierwszy if :)</span>

znaido sie ludzie ktorzy bedo miec inny poglod na ten syntax, ale chcialem tym wyjasnic, ze zapis ma byc zrozumialy dla innych i dla ciebie :)

 

scryptow sie nieboj, bo szybko przywykniesz

w zasadie scrypt moze byc dany objektu(objekt w roomu jest instancja) do jego eventu.

event vykonuje ten script w chvili kiedy jest jego kolej na netu znajdziejs game maker event ordres"

dalej game maker ma scripts( tam jak so object, sprite itp.) to so scripty ktore so dostepne globalnie( znaczy ze so zawsze do dyspozicji)

 

tutaj trza tylko uwazac ze taky script ma dostep do lokalnych zmiennych w zaleznosci od instancji ktora script wola.

jesli scriph sc_zmien_hp(-10); vola gracz to script zmniejszy graczovi o 10 hp, ale jesli zawola ten sam script potwor sc_zmien_hp(-20); to mu hp sie zmienszy potworowi o 20 hp

GML
// script sc_zmien_hp(hp)

hp-=argument0;
zaraz masz uniwerzalny scipt ktory mozna volac z roznych typow instancji(gracz/wrog/ mob/ npc)

kazdy script ma argument0-12 i niedefinovane so 0 ( nieprobowalem v GM:S)

script na a+b moze wyglodac tak

GML
_licz_numery(nr1, nr2);
GML
a=argument0;

b=argument1;

c= a + b;

return c; // ta linijka niejest wymagana. tylko zwraca wynik scriptu</span>

mozew uzyc tak
GML
// jakis event mouseclick lub keyboard_release

show_message(string( _licz_numery(irandom(10), irandom(50)) ) );
string tylko zrobi z numeru strinyg by show_message mogla go wysietlic na screenie
Odnośnik do komentarza
Udostępnij na innych stronach

...

1. Pierwszym małym problemem jest to aby dany symbol się nie powtarzał (coś np. Sprawdź czy symbol pojawił się na koordynatach x y jeśli tak to nie twórz go na koordynatach x y) Wiem że trzeba tu użyć check, if ale nie wiem jak konkretnie ma to wyglądać... :(

 

2. Drugim może nieco poważniejszym jest sprawdzanie czy te symbole ułożyły się w konkretny sposób np. czy są w prostej linii (no i też jeśli symbol x znajduję się na x y, jeśli 2 symbol znajduje się na x y, jeśli 3 symbol znajduje się na x y i jeśli są jednakowe to...) Moim zdaniem skrypt z problemu pierwszego z powodzeniem mógłby również pomóc i w tym przypadku.

 

Nie muszę mieć gotowców, jeśli ktoś zna jakieś poradniki które mogłyby mi pomóc to będę wdzięczny. Chciałbym też jednocześnie powiedzieć, że wcale nie muszę ukończyć zrobienia tej gry, po prostu wybrałem to sobie jako przykład aby trochę się wmiksować w skrypty i składnie GML

1,2, niewiem jesli symbole bedom objekty bo mogo byc tylko sprite, ale radze zaplanowac kontrole v ds_grid jak poczytasz sobie help poznasz ze to bardzo fajna datowa structura :)

oczywisce mozna i array

jesli tak zrobisz to nietrza sprawdzac instancje(objekty z GM teraz dane do room) na pozycjach x,y ale tylko przesowasz instancje wedlog danych z datowych structur.

 

naprz. dla 3 reel slot:

1, losujesz typ symbolu dla kazdej kolumny i linijky

a1, b1, c1

a2, b2, c2

a3, b3, c3

 

2, zapisujesz do ds_ (data structure napr ds_grid, lub array)

 

3, czyscisz screen od nieportzebnych rzeczy(starych instancji symboli)

 

4, tworzys instancje wylosowanych symboli wedlog ds_

 

5, sprawdzasz zgodnoscz na wszystkich symboli w pozycjach mozliwej wygranej

 

6, pokazujesz vynik, liczsysz punkty, itp.

 

7, i odnova goto 1,

 

w tym wypadku mozna poloczyc 3, i 4, jesli zamiast instance_destroy i instance_create uzyjesz instance_change

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ę...