Skocz do zawartości

Jak zrobić bazę obiektów na podstawie zmiennych?


ZeroXbot

Rekomendowane odpowiedzi

Zwracam się do was z kolejnym pytaniem. Otóż chciałbym zrobić bazę obiektów np. broni (nie takich jak pistolet czy karabin tylko chodzi mi tu o uzbrojenie w czołgach: działa itp.). Każda z broni ma swoje właściwości (siła ataku, reload, sprite broni i pocisku). I oto pytania:

1. Jak takie coś zrobić?

2. Gdzie to umieścić, żeby wszędzie był do tego dostęp?

Z góry dziękuję za odpowiedzi!

Odnośnik do komentarza
Udostępnij na innych stronach

1. uzyj tablic

GML
zmienna[0,0] = nazwa broni

zmienna[0,1] = sila broni

zmienna[0,2] = reload broni

zmienna[0,3] = sprite broni

 

dzieki uzyciu tablic latwiej sie polapac jesli prote wytlumaczenie:

 

typ broni ---> [0,1] <--- wlasciwosc broni.

 

Tak wiec ustalasz sobie ze jesli druga liczba jest 0 to zawsze oznacza ona nazwe borni, jedynka to sila broni. Pierwsza liczba to numer(typ, rodzaj) broni.

GML
bron[0,0] = 'Noz'

bron[0,1] = 1

bron[0,2] = 0

bron[0,3] = s_noz

 

bron[1,0] = 'Pistolet'

bron[1,1] = 5

bron[1,2] = 10

bron[1,3] = s_pist

 

bron[2,0] = 'Karabin

bron[2,1] = 20

bron[2,2] = 28

bron[2,3] = s_kara

 

2.

przed kazda z tych zmiennych dajesz 'global.' przyklad:

GML
global.bron[0,0] = 'Noz'

global.bron[0,1] = 1

global.bron[0,2] = 0

global.bron[0,3] = s_noz

 

global.bron[1,0] = 'Pistolet'

global.bron[1,1] = 5

global.bron[1,2] = 10

global.bron[1,3] = s_pist

 

global.bron[2,0] = 'Karabin

global.bron[2,1] = 20

global.bron[2,2] = 28

global.bron[2,3] = s_kara

 

Zrob sobie jakis obiekt ktory bedzie przetrzymywal te zmienne, zaznacz w nim persistent tak aby przeskakiwal z roomu do roomu i gotowe.

Odnośnik do komentarza
Udostępnij na innych stronach

Zacząłem więc robić bazę (na razie modeli czołgów) i mam coś takiego:

GML
//MODELS

//NAZWA

global.model[0,0]='Beetle'

//V-MAX

global.model[0,1]=6

//ACC

global.model[0,2]=0.1

//AP

global.model[0,3]=80

//DEF

global.model[0,4]=1

//NAPALM?

global.model[0,5]=true

//MINES?

global.model[0,6]=false

//SPIKES?

global.model[0,7]=false

//GLUE?

global.model[0,8]=false

//B-SPIKE?

global.model[0,9]=false

//LC?

global.model[0,10]=true

//MC?

global.model[0,11]=true

//HC?

global.model[0,12]=true

//GC?

global.model[0,13]=true

 

global.model[0,14]=true

 

global.model[0,15]=true

 

global.model[0,16]=true

Chodzi mi tu konkretnie o pozycje od [0,5], czyli czy może mieć zainstalowaną broń. CZy taki system jest dobry, czy może jest jakiś lepszy sposób na tego typu rzeczy?

Odnośnik do komentarza
Udostępnij na innych stronach

Próbuję wywołać zmienną z bazy danych:

draw_sprite(global.model[global.player[0],4],image_index,x,y);

Wcześniej w bazie danych zdeklarowałem je:

global.model[0,4]=s_beetle
global.player[0]=0

Gdy próbuję przetestować grę wyskakuje mi błąd, w ktorym pisze: trying to draw non-existing sprite. Wiem co to znaczy, ale dlaczego tak się pojawia? Sprite o nazwie s_beetle istnieje.

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