Skocz do zawartości

Podmienianie nazwy tablicy?


Mind

Rekomendowane odpowiedzi

Witam :)

Tworzę sobie bardziej rozbudowaną platformówkę, ale zatrzymałem się w 1 miejscu :

Chodzi tu o shop'a, na początku wybierasz rodzaj broni (Sword, Wand..), a później wyświetlają Ci się bronie tego typu.

Mam takie tablice:

 

wyb[0,0]=0

wyb[0,1]=0

wyb[0,2]=0

 

wan[0,0]=1

wan[0,2]=spr_stf2

wan[0,1]='Grass Wand'

 

wan[1,0]=2

wan[1,2]=spr_stf3

wan[1,1]='Light Wand'

 

I jeszcze parę innych, ale to nieistotne ;)

Ale gdzie problem? Problem jest taki, że chcę aby tablica wyb[] sczytywała wartości z tablicy wan[] - jak to zrobić?

Czy tak się w ogóle da?

Odnośnik do komentarza
Udostępnij na innych stronach

Nie rozumiem za bardzo o co chodzi. Chcesz żeby do tablicy wyb[], zapisywało wybraną opcje?

GML
wyb[0,0] = wan[0,0]

wyb[0,2] = wan[0,2]

wyb[0,1] = wan[0,1]

A jeśli masz jeszcze co innego na myśli, to coś takiego ewentualnie Ci podrzucam.

GML
var buy;

//zmienna buy to, inaczej pierwszy element tablicy. Jeśli kupisz Light Wand, to zapisz to na 1

wyb[buy,0] = wan[buy, 0]

Chyba, że chcesz, aby te bronie, zapisywało 'po kolei'.

GML
var buy;

//z buy to samo co wcześniej

for(i=0; i<maks_ekwipunek; i++) // sprawdza tablice wybór po kolei, czy jest pusta

{

if( wyb[i,0] == 0 ) // jeżeli jest pusta

{

wyb[i,0] = wan[buy, 0]; // przypisuje wybraną opcje

break; // wychodzi z pętli

}

}

A no i jeśli będziesz miał dużo takich wartości do jednego itemku, to pętlami to przypisuj.

GML
for(i=0; i<wszystkie_opcje; i++)

{

wyb[0,i] = wan[0,i];

}

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi mi o to, żeby nie przypisywać za każdym razem konkretnej pozycji na tablicy o tak:

wyb[0,0]=wan[0,0]

wyb[0,1]=wan[0,1]

 

Bo są jeszcze inne typy broni i one mają jeszcze inną tablicę np.swo[0,0].

W takim przypadku musiałbym sprawdzać co zostało wybrane i potem po kolei przypisywać każdy item.

Czy nie da się ich.. Że tak powiem zespoić?

Odnośnik do komentarza
Udostępnij na innych stronach

Jakbym zespoił to będę miał taką możliwość :D

Właśnie gdybym ją miał, nie musiałbym za każdym razem przypisywać poszczególnych elementów tylko przepisywałbym z istniejącej już tablicy, której wartości ustaliłem w create :)

 

Edit: Problem da się rozwiązać i zwykłymi if'ami, tyle że musiałoby być ich tyle co rodzai ekwipunku, a tak, na podstawie wyboru tablica przybiera wartości tablicy którą wskażę. Znaczy.. Miałaby. ;)

Nie wiem czy dokładnie rozumiecie problem, bo trudno mi go jasno wytłumaczyć - w razie czego spróbuję jeszcze raz.

Odnośnik do komentarza
Udostępnij na innych stronach

Spróbuj lepiej wytłumaczyć. Nie wiemy co siedzi w twojej głowie. Ja mogę spróbować namówić Cię na przerobienie twoich tablic. Zamiast robić osobne tablice do różnych rodzai bronie zrób jedną tablicę dla wszystkich broni.

GML
wpn[0,0]=1

wpn[0,3]="wand" //Albo najlepiej używaj intów

wpn[0,2]=spr_stf2

wpn[0,1]='Grass Wand'

Odnośnik do komentarza
Udostępnij na innych stronach

Tyle że kiedy będę miał jedną tablicę będę musiał wybiórczo wypisywać które z nich wstawić przy odpowiedniej kategorii (miecze, łuki[...]) ;/

Wait, zbiorę to do kupy i wstawię ;)

 

Edit:

GML
if shop=1

{

if keyboard_check_pressed(vk_down)

if wybor<wybor_max

wybor+=1

if keyboard_check_pressed(vk_up)

if wybor>wybor_min

wybor-=1

 

if keyboard_check_pressed(vk_space)

{

if cho[wybor,0]='Wand'

wyb=wan // Tutaj chcę 'przestawić' tablicę

if cho[wybor,0]='Sword'

wyb=swo //I tu

if cho[wybor,0]='Bow'

wyb=bow //I tu :D

wybor=0

shop=2

}

 

A teraz kod przy włączonej kategorii:

GML
if shop=2

{

 

if keyboard_check_pressed(vk_space)

{

with (stf)

{

npc.Type = typ[0,3]

npc.Name = typ[0,1]

npc.Sprite = typ[0,2]

typ[0,1] = npc.wyb[npc.wybor,1]

typ[0,2] = npc.wyb[npc.wybor,2]

typ[0,3] = npc.wyb[npc.wybor,0]

}

wyb[wybor,0] = Type

wyb[wybor,1] = Name

wyb[wybor,2] = Sprite

 

}

 

}

 

Możliwe? ;)

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