Skocz do zawartości

Tablice nie 2-wymiarowe


blondi

Rekomendowane odpowiedzi

Więc tak robiąc po swojemu questlog napotkałem taki problem,otóż strzałkami chciałbym przewijać questy (tak chce nosić więcej niż 1-2 limit na 5 załóżmy)

Jak napisać warunek że jeśli mam tak podzielone questy

quest[0]

quest[1]

quest[2]

itd itd, i każdą z tych wartości ma false(nie ma jeszcze questa w dzienniku) true kiedy ma być quest...i teraz sedno sprawy

jak zrobić żeby omijał te co sa na false? O.o...np z 2 questa na 34?

z góry dzieki za pomoc ^^"

Odnośnik do komentarza
Udostępnij na innych stronach

więc tak :

w create mam (w questach) zmienną

-quest_aktualny=opd za to właśnie jaki quest ma byc

-quest=gdzie i to numer questa

-questaktywny=false/true=to czy quest jest w dzienniku czy nie

 

i albo jestem pusty albo to co podałeś nie działa sprawdziłem na wszystkie możliwe sposoby;/

Odnośnik do komentarza
Udostępnij na innych stronach

GML
//event rysowania/wyswietlania questlog'a

j=false;

for(i=0;i<5;i+=1)//robimy pętle

{

if(quest)//sprawdzamy czy quest jest dostępny

{

draw_text(x,y+j*20,text_quest)//wyświetl text

j+=1;

}

}

Dzięki zmiennej j, text jest wyświetlany jeden pod drugim.

Odnośnik do komentarza
Udostępnij na innych stronach

z rysowaniem sie przyda pewnie tylko tu jest kwestia przełączania tych questów co są nieaktywne:

załóżmy przełączamy questy strzałkami lewo-prawo,jest 5 questów ogólnie

1-true

2-false

3false

4-true

5-true

cos takiego i ma przeskakiwać te co są na false do tych co są na true

i po prostu nie mam bladego pojęcia jak ;/

Odnośnik do komentarza
Udostępnij na innych stronach

GML
// create

a=false; //aktualna pozycja

amax=10;//wymiar tablicy (tablica ta ma 11 elementów od (0 do 10)

//klawisz w lewo

if(keyboard_check_pressed(vk_left)&&quest[0])

{

a+=1;

if(a>amax)// jeżeli przekroczymy tablicę, to wróć na początek tablicy

a=false;

while(!quest[a])

{

a+=1;

if(a>amax)

a=false;

}

}

&&quest[0]- to jest po to, aby pętla nie była wykonywana w nieskończoność gdy wszystkie jej elementy mają wartość zero. Jeżeli mają być jakieś questy, to będą one w końcu dopisywane od komórki z indeksem 0, przynajmniej tak jest dla mnie logicznie. Gdy pierwsza komórka ma wartość zero, to nie ma żadnych questów i tablica nie będzie sprawdzana. Pod zmienną a masz numer indeksu interesującej Ciebie komórki. Resztę zostawiam Tobie.

Odnośnik do komentarza
Udostępnij na innych stronach

hmmm inaczej podam (wiem jestem oporny na pomoc i wiedze)

GML
//create

global.quests=0

total=3

current_quest=0

//Quest 1

quest[0]="Ocena Sytuacji :"

questopis[0]=string_insert_breaks("Rozejrzyj się po okolicy.Zabij kilka goblinów w celu odnalezienia zaginionej figurki",150)

questnagroda[0]="???"

questexp[0]=1000

questile[0]=0

questwymagane[0]=1

questactive[0]=true

questok[0]="nie"

//Quest 2

quest[1]="Zabójca :"

questopis[1]=string_insert_breaks("Dostałeś zlecenie na zabicie wodza goblinów.Udaj sie do ich obozu",150)

questnagroda[1]="???"

questile[1]=0

questexp[1]=1200

questactive[1]=false

questok[1]="nie"

questwymagane[1]=1

//Quest 3

quest[2]="Figury Boskie :"

questopis[2]=string_insert_breaks("Doznałeś oświecenia!Biegnij do lasu SZYBKO!",150)

questnagroda[2]="???"

questile[2]=0

questexp[2]=2500

questactive[2]=true

questok[2]="nie"

questwymagane[2]=0

to mam w create

 

a to w drawie:

GML
//Draw

draw_text(view_xview+650,view_yview+10,quest[current_quest])

draw_set_color(c_silver)

draw_text(view_xview+650,view_yview+10+string_height(quest[current_quest]),questopis[current_quest])

draw_set_color(c_olive)

draw_text(view_xview+650,view_yview+12+string_height(questopis[current_quest])+string_height(quest[current_quest]),"Nagroda: "+string(questnagroda[current_quest]))

draw_set_color(c_white)

if not(questwymagane[current_quest]=0 )

draw_text(view_xview+650,view_yview+14+string_height(questnagroda[current_quest])+string_height(quest[current_quest])+string_height(questopis[current_quest]),string(questile[current_quest])+" / "+string(questwymagane[current_quest]))

i ta cześć działa bez problemu

@candy nie wiem czemu wyskakuje mi błąd że źle skonstruowane wyrażenie z " && quest[0]"

nie wiem jak już to robić bo coś niezbyt mi idzie>.<

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