Skocz do zawartości

opadający obiekt,zadający obrażenia,kiedy bohater przejdzie pod nim


Cygnus

Rekomendowane odpowiedzi

Do wykrycia czy gracz dotknął od góry platformę użyj: place_meeting() jak kolizja będzie wykryta to użyj poniższego kodu by uruchomić odliczanie czasu:

GML
if ( alarm[0] <= 0 )

{

alarm[0] = room_speed*1; // zamiast jedynki wpisz ile sekund ma platforma wytrzymac

}

No i w evencie alarm 0 bo ten czas uruchomiłeś wstaw niszczenie platformy instance_destroy() oraz tworzenie odłamków funkcją instance_create()

Odnośnik do komentarza
Udostępnij na innych stronach

Szczerze to mnie zaskoczyłeś myślałem że dłużej ci zejdzie :D

 

No prawie.

Kod umieść w obj_platforma w step

GML
if ( place_meeting( x, y - 3, obj_gracz ) )

{

if ( alarm[0] <= 0 )

{

alarm[0] = room_speed*1; // zamiast jedynki wpisz ile sekund ma platforma wytrzymac

}

}

To działa tak że platforma szuka kolizji z graczem lekko nad sobą bo wpisałem y-3.

No i ten event alarm 0 został jeszcze. W którym musisz dać kod niszczenia platformy i tworzenia odłamków.

Odnośnik do komentarza
Udostępnij na innych stronach

Szczerze to mnie zaskoczyłeś myślałem że dłużej ci zejdzie :D

 

No prawie.

Kod umieść w obj_platforma w step

GMLif ( place_meeting( x, y - 3, obj_gracz ) )

{

if ( alarm[0] <= 0 )

{

alarm[0] = room_speed*1; // zamiast jedynki wpisz ile sekund ma platforma wytrzymac

}

}

To działa tak że platforma szuka kolizji z graczem lekko nad sobą bo wpisałem y-3.

No i ten event alarm 0 został jeszcze. W którym musisz dać kod niszczenia platformy i tworzenia odłamków.

 

 

 

Dzięki;) o to mi chodziło;) kiedyś trzeba zaskoczyć;D

 

Teraz alarm0 w platformie:

 

GML
with (obj_platforma)

{

instance_destroy();

}

 

o to chodzi?

 

a te odłamki,to nie wiem:/

Odnośnik do komentarza
Udostępnij na innych stronach

Nie po prostu samo instance_destroy(); ta funkcja niszczy ten obiekt w którym kod się wykonał.

A odłamki to najpierw stwórz jako osobne obiekty, którym w create nadasz prędkość w dół czyli np. vspeed = 5; dodaj im też jakąś kolizję żeby znikały jak spadną i uderzą w coś.

 

No i w tej platformie w alarm0 instance_create(x, y, obj_odlamki);

Odnośnik do komentarza
Udostępnij na innych stronach

Her Lordzie coś takiego?

 

 

 

 

GML
ww = sprite_get_width(sprite_index);

hh = sprite_get_height(sprite_index);

chunk = 4;

for (i=0;i<ww;i+=chunk) {

for (j=0;j<hh;j+=chunk) {

particle = instance_create(x+i,y+j,obj_particle);

particle.spr = sprite_index;

particle.size = chunk;

particle.xx = i;

particle.yy = j;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

A,więc tak Lordzie

 

w Create obj_odlamki mam tak;

 

GML
vspeed = 5;

 

 

ALARM 0

 

GML
ww = sprite_get_width(sprite_index);

hh = sprite_get_height(sprite_index);

chunk = 4;

for (i=0;i<ww;i+=chunk) {

for (j=0;j<hh;j+=chunk) {

particle = instance_create(x+i,y+j,obj_particle);

particle.spr = sprite_index;

particle.size = chunk;

particle.xx = i;

particle.yy = j;

}

}

 

obj_platforma to kod mam tak

 

 

ALARM 0

GML
instance_destroy();

 

 

STEP

 

GML
if ( place_meeting( x, y - 1, obj_player ) )

{

if ( alarm[0] <= 0 )

{

alarm[0] = room_speed*3;

}

}

 

 

 

coś jeszcze??

Odnośnik do komentarza
Udostępnij na innych stronach

Nie tak.

 

obj_platforma:

GML (alarm0)
ww = sprite_get_width(sprite_index);

hh = sprite_get_height(sprite_index);

chunk = 4;

for (i=0;i<ww;i+=chunk) {

for (j=0;j<hh;j+=chunk) {

particle = instance_create(x+i,y+j,obj_particle);

particle.spr = sprite_index;

particle.size = chunk;

particle.xx = i;

particle.yy = j;

}

}

 

instance_destroy();

 

GML (step)
if ( place_meeting( x, y - 1, obj_player ) )

{

if ( alarm[0] <= 0 )

{

alarm[0] = room_speed*3;

}

}

 

I to wszystko bo prawdopodobnie twoje obj_particle już ma w sobie to co potrzebujesz.

Odnośnik do komentarza
Udostępnij na innych stronach

No dobra Lordzie,a jak teraz zrobić,żeby ta platforma na którą wskoczymy nie wybuchała tylko znikneła tak jak teraz to zrobiła,i zaraz się pojawiła,i tak za każdym razem jak na nią wskoczymy;)

można jakoś operować zdarzeniem??

 

możliwe akcje;)

 

1.wskakuje bohater na platformę i zaraz ona znika i jak z niej zejdzie pojawia się

2.platforma sama pojawia się i znika w dowolnym odstępie czasowym..

Odnośnik do komentarza
Udostępnij na innych stronach

Hmmm nie wiem, myślę nad deaktywacją i aktywacją obiektu ale to wymaga zrobić jakiś osobny obiekt kontrolujący ponową aktywację tych platform. Jakieś zapisanie ich id do ds_listy albo stack. To będzie trudne i ci tego nie będę umiał wytłumaczyć.

Odnośnik do komentarza
Udostępnij na innych stronach

No własnie to już więcej zabawy,ale i tak dziękuje serdecznie.

Ja powalczę teraz z tą platformą znikającą się i pojawiająca w odstępach np co 2sekundy;)

ale chyba nie koniecznie w tym przypadku trzeba tworzyć osobny obiekt,bo zobacz...tutaj chodzi o sterowanie czasem sam nie wiem jak to nazwać.

Odnośnik do komentarza
Udostępnij na innych stronach

To może tak ale nie wiem czy dobrze zadziała.

 

Zrób pusty obiekt bez sprite, który w create będzie miał: alarm[0] = room_speed * 3;

a w event alarm 0: instance_change(obj_platforma, true);

 

A w tej platformie w alarm 0: instance_change(obj_ten_twoj_pusty_obiekt, true);

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