Skocz do zawartości

Lista zmiennych obiektów


Rekomendowane odpowiedzi

Witam,

 

Jaki jest dobry sposób na zrobienie listy dwóch zmiennych obiektów tego samego typu których liczba może się zmienić i wszystko jest uporządkowane.

 

Prościej, mamy powiedzmy 5 obiektów name_obj liczba ich może się zmienić na bieżąco i chciałbym otrzymać uporządkowaną tabele mniej więcej tego typu:

name_obj.name----------string(count)

name_obj.name----------string(count)

name_obj.name----------string(count)

name_obj.name----------string(count)

name_obj.name----------string(count)

 

Lista porządkowałaby się na podstawie zmiennej count od największej (u góry) do najmniejszej. W przypadku 4 obiektów wyświetliły by się tylko 4 linijki tabeli.

 

Moje pytanie brzmi: Jak taki efekt otrzymać ?

 

Kombinowałem coś z funkcjami ds_map ale nic mi z tego nie wychodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

create :

GML
list = ds_list_create();

 

for(i=0;i<instance_number(object0);i+=1)

{

ds_list_add(list,instance_find(object0,i).count);

}

ds_list_sort(list,0);

 

draw :

GML
for(i=0;i<instance_number(object0);i+=1)

{

draw_text(x,y+(i*15), "object0."+string( instance_find(object0,i).name )+ "--------" + string( ds_list_find_value(list,i) ) )

}

 

w momencie gdy tworzy się obiekt, musisz powtarzac kod z create ( tylko list = ds_list_create(); zastąp ds_list_clear(list); ;p). Możesz sobie zrobić funkcje zeby bylo szybciej.

Odnośnik do komentarza
Udostępnij na innych stronach

Co nie poprawie to wyskakuje kolejny błąd zawiesiłem się już na tym że uważa że nie istnieje ta zmienna count w obiekcie a jest na pewno już w create przypisywana na 0. Chce po prostu zrobić uporządkowaną listę graczy i ilość punktów jakie posiadają w grze multiplayer. Szukam przykładów nigdzie znaleźć nie mogę.

 

Edit:

Obydwie zmienne mam w obiekcie nic nie muszę przesyłać. obj.username i obj.frags lista sortowała by się pod względem zmiennej frags

Odnośnik do komentarza
Udostępnij na innych stronach

Widocznie się różni jak było bez nawiasu to pisało że nie istnieje zmienna count jak jest to błąd nie wyskakuje. Z początku też myślałem że to nie gra roli dlatego pisałem, że zawiesiłem się na tym. Potem jednak spróbowałem. Sposób i tak jednak nie działa do końca chyba. Sortuje zmienną count ale name zostają tak jak były. Jeszcze musze dokładnie sprawdzić.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli każda instancja ma takie same name to normalne. Ale jak mają różne to na górze powinna być ta z największą zmienną count ;p

EDIT : Jest taki wał O-O. Wiesz dlaczego on nie widzi zmiennej count ? :D to ci powiem : jeśli w pierwszej kolejności rozłożysz graczy na planszy ( w edytorze jeszcze ), a w drugiej kolejności obiekt game to ci obliczy wszystko.... a jak chcesz dodać nowy obiekt po tym jak już dodałeś game ( też w edytorze ) to ci wywala "nieznana zmienna count". Wywaliłem obiekt game, dodalem nowych "graczy" a potem go dodałem na końcu i żadnego buga. Ale podczas tworzenia w czasie gry nie powinno go być. Nie wiem dlaczego on wyskakuje ale pewnie jest to spowodowane kolejnością obliczeń GM-a.

Odnośnik do komentarza
Udostępnij na innych stronach

No ale i tak sortuje tylko zmienną count i nie dziwie się dlaczego miałoby sortować nazwę obiektu skoro nie jest w funkcji list... na moje trzeba zastosować ds_map który sortuje też argument key razem z wartością.

 

Dobra będę kombinował i tak dużo mi pomogłeś ;]

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