Skocz do zawartości

Problem ze skrzynią.


m97

Rekomendowane odpowiedzi

Witam na forum jest wiele poradników dotyczących inwentarzy, ale nie ma nic na temat skrzyń. Różnica pomiędzy skrzyniami a inwentarzem jest taka, że inwentarz jest jeden a skrzyń wiele. Zrobiłem skrzynie i jak jakąś otwieram i coś do niej włożę a następnie pójdę do następnej to znajduję w niej to samo co w poprzedniej choć powinna być pusta. Wygląda to tak jakby wszystkie skrzynie korzystały z jednej tablicy. Czy można coś z tym zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

Co mam zrobić jeśli ze zmiennej która mówisz, że ma być lokalna korzystają u mnie 3 obiekty:

-skrzynia

-sterownik skrzyni - Rysuje on sloty skrzyni gdy jest otwarta ponieważ gdybym umieścił tą akcje w skrzyni znikłby mi jej obrazek.

- plecak - Gdyż jest on odpowiedzialny za przenoszenie obiektów z plecaka do skrzyni.

Z tego co wiem zmiennej lokalnej nie będę w stanie użyć w tych trzech obiektach.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem czy mnie dobrze zrozumiałeś. Oto kod który tworzy skrzynię (skrzynia to zmienna lokalna):

GML
h = 0

otwarta = false

while(h < 15){

Skrzynia [h,0] = false//pusty

Skrzynia [h,1] = pusty//sprite przedmiotu

Skrzynia [h,2] = false//czy stackowalny

Skrzynia [h,3] = 1//liczba stackowalnych przedmiotow

Skrzynia [h,4] = 0//liczba przedmiotow w kratce

Skrzynia [h,5] = 0//rodzaj

if(h < 5){

Skrzynia [h,6] = (h*32)+96//pozycja x

Skrzynia [h,7] = 288//pozycja y

}

if((h > 4)&&(h<10)){

Skrzynia [h,6] = ((h - 5)*32)+96//pozycja x

Skrzynia [h,7] = 320//pozycja y

}

if((h > 9)&&(h < 15)){

Skrzynia [h,6] = ((h - 10)*32)+96//pozycja x

Skrzynia [h,7] = 352//pozycja y

}

h += 1

}

h = 0

 

Oto kod w obiekcie o nazwie sterownik skrzyni który rysuję nam sloty w otwartej skrzyni:

GML
i = 0

h = 0

if(otwarta = true){

while(h < 15){

y = view_yview div 32*32

draw_sprite(kratka_plecaka,-1,Skrzynia[h,6]+view_xview,Skrzynia[h,7]+y)

draw_sprite(Skrzynia[h,1],-1,Skrzynia[h,6]+view_xview,Skrzynia[h,7]+y)

if(Skrzynia[h,4] > 0){

draw_text(Skrzynia[h,6]+view_xview,Skrzynia[h,7]+y,Skrzynia[h,4])

}

h += 1

}

h = 0

}

h = 0

To kod wywoływany po kliknięciu na skrzynię:

GML
if(sterownik_skrzyni.otwarta = false){

sterownik_skrzyni.otwarta = true

otwarty = true

Pokoj = 5

}

else{

sterownik_skrzyni.otwarta = false

otwarty = false

Pokoj = 0

}

Jeśli brakuje jakiegoś kodu napiszcie o tym to go zamieszczę.

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