Skocz do zawartości

[request]


Rekomendowane odpowiedzi

Zrób sobie zmienną określającą ile potworków ma się pojawić:

 

Create:

potworki=1;

 

Po każdym zabiciu potworka sprawdzaj czy jeszcze jakiś został, a jak nie to stwórz nowe:

 

if(instance_number(potworek)==0)

{

potworki*=2;

for(i=0;i<potworki;i++)

instance_create(x,y,potworek);

}

Odnośnik do komentarza
Udostępnij na innych stronach

czemu ludzie używają for zamiast repeat? ;>

Zboczenie zawodowe :)

 

Skoro nie kumasz to może opatrzę kod w komentarze:

GML
if(instance_number(potworek)==0) //jeśli liczba potworków w roomie jest równa 0

{

potworki = (potworki*2); //teraz ma się pojawić dwa razy więcej potworków więc zwiększamy zmienną dwukrotnie

repeat(potworki) //ten kod powoduje że poniższa instrukcja wykona się tyle razy ile wynosi zmienna "potworki"

instance_create(x,y,potworek); //a więc tyle razy wykona się tworzenie potworka w podanej pozycji (x i y) :)

}

Odnośnik do komentarza
Udostępnij na innych stronach

Zboczenie zawodowe :)

 

Skoro nie kumasz to może opatrzę kod w komentarze:

GML
if(instance_number(potworek)==0) //jeśli liczba potworków w roomie jest równa 0

{

potworki = (potworki*2); //teraz ma się pojawić dwa razy więcej potworków więc zwiększamy zmienną dwukrotnie

repeat(potworki) //ten kod powoduje że poniższa instrukcja wykona się tyle razy ile wynosi zmienna "potworki"

instance_create(x,y,potworek); //a więc tyle razy wykona się tworzenie potworka w podanej pozycji (x i y) :)

}

 

 

a jak mam zrobic aby potworki pojawialy sie w losowych miejscach ??

Odnośnik do komentarza
Udostępnij na innych stronach

zamiast x i y zrób w instance_create

random(room_width)

random(room_height)

 

random ci losuje wartość z przedziału od 0 do podanej w nawiasie wartości.

W naszym przypadku będzie to szerokość i wysokość rooma :)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if(instance_number(potworek)==0) //jeśli liczba potworków w roomie jest równa 0

{

potworki = (potworki*2); //teraz ma się pojawić dwa razy więcej potworków więc zwiększamy zmienną dwukrotnie

repeat(potworki) //ten kod powoduje że poniższa instrukcja wykona się tyle razy ile wynosi zmienna "potworki"

{

miejsce = round( random( 3 ) ); // losowa zaokrąglona liczba od 0-3

switch( miejsce )

{

case 0: xx = 0; yy = random( room_height ); break;

case 1: xx = room_width; yy = random( room_height ); break;

case 2: xx = random( room_width ); yy = 0; break;

case 3: xx = random( room_width ); yy = room_height; break;

}

instance_create(xx,yy,potworek); //a więc tyle razy wykona się tworzenie potworka w podanej pozycji (x i y) :)

}

 

}

O ile pamiętam, w Crimsonland potworki pojawiały się na krawędziach poziomu ;)
Odnośnik do komentarza
Udostępnij na innych stronach

Robiąc round(random(3)) 0 i 3 mają o połowę mniejsze szanse żeby być wylosowanym niż 1 i 2.

 

Poza tym metoda ogólnie do niczego.

 

Skoro mają być na krawędziach to ja bym to zrobił tak:

 

GML
O = 2*room_width+2*room_height //Obwód rooma

poz = random(O);

 

I tutaj 4 warunki zależnie od tego na której krawędzi dany punkt jest. Ale już mi się ich pisać nie chce :P

 

W ten sposób tylko raz potrzebne będzie losowanie.

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