Skocz do zawartości
Mateusz Nejman

Zapis zmiennych z wielu obiektów

Rekomendowane odpowiedzi

A ile jest tych amperomierzy? Może przy ich tworzeniu zapisuj id każdego do tablicy i potem możesz odczytywać zmienną "opcje" z każdego z nich przy pomocy pętli for, np. coś takiego:

 

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

draw_text(x,y,string(amperomierz.opcje))

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Możesz użyć with żeby utworzyć taką listę:

GML
// Tworzenie listy, jej aktualizacja etc.

listSize = 0;

list[0] = 0;

with(o_Amperomierz) {

list[listSize] = ...; // Jakieś dane obiektu, może nawet sam obiekt

listSize += 1;

}

 

// Użycie listy

for(i = 0; i < listSize; i += 1) {

... // Rysowanie etc.

}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Nie ma określonej liczby amperomierzy.

 

instance_number(amperomierz)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Create o_Lista:

 

GML
count=0

//Tworzenie dowolnej ilości amperomierzy, w dowolnym momencie (wtedy ten kod w innym evencie daj)

amperomierz[count]=instance_create(x,y,o_Amperomierz)

count+=1

 

Draw o_Lista:

 

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

draw_text(x,y,string(amperomierz.opcje))

 

To chyba kompletny i najłatwiejszy sposób.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
GML
for(i=0;i<=count;i++)

draw_text(x,y,string(amperomierz.opcje))

 

To narysuje wszystkie opcje w tej samej lini.

Co więcej wyjdzie poza zakres tablicy, bo na pozycjach od 0 do 3 będą 4 wpisy.

 

Poprawka:

GML
var wys = 0;

for(i=0;i<count;i++){

draw_text(x,y+wys,string(amperomierz.opcje))

wys+=string_height(amperomierz.opcje);}

 

Najlepiej to zrobic w ten sposob bo bedzie dzialac bez wzgledu na ilosc pozycji w stringu opcje.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

jak bys uzywal datowych struktur ds_ to kazda umie dac swa wielkosc, nie jak array.

 

chyba zu raz pisalem o produ i ampermetru :)

 

jest barddzo podobny do sposobu szmalu, ale mozna wedlog potrzeby uzyc roznych typow ds_

 

sam wypis, tak jak pisal I am vader, lub jakis format stringu(draw_text_ext, ...)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Taka mała uwaga na którą mike na swoim blogu zwraca aby deklarować pętle w ten sposób for ( var i = 0; i < count; i++ ), są dwie zalety. Zmienna 'i' nie zostaje oraz samo działanie pętli jest odrobinę szybsze.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A to już takie szczegóły jak zapisywanie globali do varów gdy się dużo z nich korzysta w jednym kodzie czy deklarowanie tablicy zaczynając od ostatniej pozycji.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tak to też. Warto wiedzieć o takich szczegółach. Dopisanie słówka var w pętli nie jest jakimś dużym wysiłkiem prawda?

Z tym deklarowaniem tablic od tyłu już jest gorzej bo trzeba przestawić myślenie, ja akurat tego nie stosuję bo brzydko wygląda pętla w tył.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×