Skocz do zawartości

Jak zliczyć ilość spritów oraz objektów na planszy


Rekomendowane odpowiedzi

Witam ponownie

 

Chciałbym się dowiedzieć jak mogę policzyć ilość spritów na ekranie( planszy). Chodzi mi o to ze mam narysowanych na planszy np. 5 spritów o nazwie spr_guzik_czerwony, i 8 spritów guzik_niebieski itd. itd. Każdemu spritowi przypisany jest obiekt o podobnej nazwie jak np. obj_guzik_czerwony jest spr_guzik_czerwony lub obj_guzik_niebieski spr_guzik_niebieski. Stworzyłem tablice Tablica[x,y,id,nazwa_sprita ] gdzie chciałem zapisać jakieś unikatowe oznaczenia dla każdego sprita lub obiektu jak x,y, id sprita ale niestety nic mi się nie udaje. Nie umiem przypisać konkretnych danych do tablicy aby potem odnaleźć właściwego sprita i ewentualnie go zsumować z innymi podobnymi ( tzn o tej samej nazwie) by w Hudzie napisać Guzików czerwonych jest np. 5 a Niebieskich 8 itd. itd . Może ktoś z Was mi podpowie jak się do tego zabrać.

 

Pozdrowienia

Odnośnik do komentarza
Udostępnij na innych stronach

jezeli kazdemu sprite odpowiada jedna instancja(object w roomu) to licz instancje.

 

co do twego przypadku.

mozna zrobic roznie, naprz.:

- kazdy obj_guzik_cos zapisuje przez event CREATE swe id do obj_control( mozna fajnie uzyc ds_queue_ )

- obj_control potem latwo znajdziei ilosc zapisanych obj_guzik_czerwony lub niebieski.

 

iterujoc(przechodzoc po queue) dostajesz id kazdego obj_guzik_ i mozesz z kazdym robic co potrzebujesz

ds_queue, jest tylko jedna z wielu mozliwosci, jak ds_ tak array(tablica)

 

-------

czasami jednak uzywa sie jedna instancja= kilka sprite na roznych miesjcach,lub nakladanych na siebie.

tam treba liczic z prawidlowo ilosco wykreslen :)

mozna potem uzyc sposob wyzej podany, ale musi byc odpowiednio modifikowany

Odnośnik do komentarza
Udostępnij na innych stronach

Witam ponownie

mam znów problem z obiekt kolejka = ds_queue_create(); Utworzyłem kolejkę dla obj_guzik_niebieski przypisałem do tablicy id obiektu oraz stan guzika (wlaczony lub wylaczony) działa wyśmienicie jeżeli naciskam tylko niebieskie guziki. kazde z nich działają niezależne i mogę policzyć sobie ilość włączonych i ilość wyłączonych ale jeżeli dodam komendę ds_queue_create(); do drugiego obiektu np. obj_guzik_czerwony to już żadnych danych nie mogę zapisać w tablicy. Ani dla niebieskich guzików ani dla czerwonych . Dodam tylko ze niebieskie są zapisywane w TABELA[1,kolejka] a czerwone w Tabela [2,kolejka]. Gdy użyje dwóch równocześnie to nic nie da się zapisać. Może ktoś ma pomysł co zmienić lub co dodać aby działało. pozdrowienia

Odnośnik do komentarza
Udostępnij na innych stronach

zmienna kolejka przechovuje adres ds_queue dla zmiennej kolejka

wazne by dla drugiej kolejki zapisac jej id do nowej zmiennej.

jezeli uzyjesz tej samej zmiennej dla nowego ds_queue, stara zmienna jest stracona i tez stare ds_queue :)

 

naprz:

GML
kolejka_czerwona=ds_queue_create();

kolejka_blekitna=ds_queue_create();

etc.
Odnośnik do komentarza
Udostępnij na innych stronach

no właśnie tak zrobiłem .. nadałem inne nazwy kolejnym obiektom guzik_czerwony=ds_queue_create(); guzik_niebieski=ds_queue_create(); guzik_żółty_=ds_queue_create(); oczywiście wszystkie to w Create action , ale dalej to samo... zapisuje 1 albo w ogóle albo nadpisuje poprzednie... nie wiem co się dzieje. Stworzyłem nawet osobne tablice dla poszczególnych obiektów tak jak TablicaNiebieska[a,b] tablicaczerwona[a,b] tablicazolta[a,b] i nic... dalej guzik czerwony nadpisuje niebieski albo żółty. Czasami jest dobrze ale to jedna na 5 albo i mniej...

Odnośnik do komentarza
Udostępnij na innych stronach

liczenie instancji jest najprostsze, ale chyba chcialesz wiecej. moze sie myle :)

 

mozna sie bavic z wieloma ds_queue, rozwiozanie jest zalezne od twych zamiarow.

wygodne jest jesli masz dosyc rozno ilosc blekytnich i czerwonych kolek.

naprzyklad mozna przewidziec wtedy z natury programu ze blekytnych mam 10000 ale rzadko sie zmienajo i czerwonych mam kilka dziesotek ale szesto sie zmienajo.

wtedy nietrzeba kontrolowac blekytne jesli sie zmieno czerwone.

i queue osobne dla kazdego koloru jest wygodne

 

queue jest dosyc szybkie a jesli progam zmiena kolorove kolka losowo a niema wyraznego podialu w licbach kolek to jest inna mozliwosc.

chyba raczej pokaze sposob jaki pierwotnie mialem na mysli => tutaj.

LMB dodaje nowe kule

RMB na kuli, jo nisczi.

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