Skocz do zawartości

Do Until, Zawiecha.


Moho

Rekomendowane odpowiedzi

Hi,

 

Męczący problem, nie wiem już co począć, do rzeczy:

 

Chcę zrobić spadającego bricka (pułapka), zrobiłem to najprościej po swojemu, mam 4 obiekty.

 

b1, b2, b3 i b4

 

b1 to brick który wykrywa pozycje gracza:

 

GML
Step:

if point_distance(x,y,objplayer.x,objplayer.y) < 200

instance_change(b2,false);

 

b2 to brick z animacją trzęsienia się (zanim spadnie):

 

GML
Animation End:

instance_change(b3,false);

 

b3 to brick który po prostu spada i z kolizją rozpada się na kilka kawałków:

 

GML
Create:

ran=random(8);

 

GML
Kolizja:

do

ran=instance_create(x,y,b4);

until instance_number(objtrapdes)=16

instance_destroy();

 

b4 to mały kawałek rozwalonego bricka

 

GML
Create:

alarm[0]=60;

motion_set(random(360),2+random(6));

 

GML
Alarm[0]:

instance_destroy();

 

Działa, ale zwiesza grę w momencie kiedy postawię kilka bricków (właściwie to dwa wystarczą). W momencie kiedy pierwszy upada i się rozbija na kawałki i w mniej więcej sekundę po rozbiciu upada drugi (co już nie zdąży się rozwalić) gra się zwiesza. Ktoś pomoże?

Odnośnik do komentarza
Udostępnij na innych stronach

A czy mu czasem nie chodzi o to, żeby stworzyć 16 kawałków *za każdym razem* kiedy jakiś brick zderzy się z czymś i się efektownie rozpryśnie?

 

Co wówczas by oznaczało, że zamiast "do ... until" albo innego mechanizmu, który efektywnie by powodował, że z każdym zderzeniem liczba kawałków jest *uzupełniania* do 16 w skali całej planszy (w szczególności, jeśli wcześniejsze jeszcze nie zostały "sprzątnięte") należy użyć czegoś, co stworzy 16 kawałków na kolizję?

 

Czyli w praktyce stary dobry repeat?

GML
repeat (16) {

ran=instance_create(x,y,b4); //po co przypisujesz tutaj ran, tak swoją drogą? O.o'

}

instance_destroy();

Odnośnik do komentarza
Udostępnij na innych stronach

Ja czegoś tu nie rozumiem, po co robić taką rzecz na 4 różnych obiektach?

 

To sobie rób na jednym ; ) Ja robię po swojemu.

 

Gnysek, chodzi o to że mam obiekt który sobie leci y+=2; i przy kolizji ma lecieć w drugą stronę eh... coś jak:

 

hspeed=7; i przy kolizji hspeed*=-1 tylko z y.

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