Skocz do zawartości

"create random" Jak zrobić 5 obiektów?


WojtekO

Rekomendowane odpowiedzi

aha sorry, nie kojarzyłem funkcji klocka. więc zrób tak:

GML
//w evencie create 'execute code'

rodzaj[0]=nazwaobjektu1;

rodzaj[1]=nazwaobiektu2;

...

rodzaj[n-1]=nazwaobiektun;

//to tylko taki wzór dopasuj do swoich potrzeb

//to poniżej daj tam gdzie chcesz tworzyć obiekty

los=round(random(n));

instance_create(x,y,rodzaj[los]);

 

PS> pisane z pamięci.

 

@UP: Można i tak :D

Odnośnik do komentarza
Udostępnij na innych stronach

to juz lepiej zrobic

GML
switch(floor(random(xxxxxx)))// mozna walnac choose, np: choose(0,0,0,0,1,1,2) tak by pozycja 0 trafiala sie czesto a 2 raz na jakis czas

{

case 0:{instance_create(x,y,ob1);break;}

case 1:{instance_create(x,y,ob1);break;}

case 2:{instance_create(x,y,ob1);break;}

case 3:{instance_create(x,y,ob1);break;}

case 4:{instance_create(x,y,ob1);break;}

case 5:{instance_create(x,y,ob1);break;}

case 6:{instance_create(x,y,ob1);break;}

case 7:{instance_create(x,y,ob1);break;}

....

}

 

ctrl+c i ctrl+v

Odnośnik do komentarza
Udostępnij na innych stronach

Źle. Wtedy 1 i ostatni obiekt mają 2x mniejsze szanse na pojawienie się niż te ze środka.

A jak już się bawimy tak, to jak dla mnie lepiej:

 

GML
list = ds_list_create(); //Tworzymy liste obiektow, ktore mozna wylosowac

ds_list_add(list, obiekt1); //Dodajemy do listy wsyztskie potrzebne nam obiekty

ds_list_add(list, obiekt2);

ds_list_add(list, obiekt3);

ds_list_add(list, obiektn);

 

ds_list_shuffle(list); //"przetasowujemy" liste - wszystkie pozycje w niej beda sie znajdowaly na losowych pozycjach

instance_create(x, y, ds_list_find_value(list, 0)); //ds_list_find_value(list, 0) - ta funckja pobieramy pierwsza pozycje z naszej listy obiektow (a, ze jest ona juz przetasowana, to w praktyce pobieramy losowa jej pozycje)</span></span>

 

Lepiej normalnie losując, ale tak (wydaje mi się przynajmniej, lol) łatwiej będzie to zrozumieć Wojtkowi... ^_^

A i nauczy się czegoś przy okazji (tzn. mam nadzieję =d)

 

Ed: I jeszcze jedna wersja :P

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