Skocz do zawartości

Zabijanie poprzez skok


Rekomendowane odpowiedzi

Witam wszsytkich.

 

Mam problem - mianowicie robie gre (platwormówke) i jestem na etapie prawie 0 w grze jak i ze znajmością Gm'a co za tym idzie GML'a równierz.

 

Problem polega na zabijaniu przeciwników poprzez naskoczeniu na nich. Dokładniej mam problem w zabiciu samego bohatera kiedy dojdzie do kolizji w osi "X". Próbowałem na wiele sposób. Przeczytałem inne tematy na tym forum oraz nadal nie znalazłem czegoś co rozwiązało by mój problem (jeśli jest forum temat z odpowiedzią na mój problem to bardzo przepraszam a jednocześnie prosze o link do takiego tematu).

 

Jak narazie mój kod wygląda tak (kod do zabicia poprzez skok):

if (other.y<y-8)
&& (other.vspeed>0)
{
instance_destroy()
}

 

Mam ten kod wklepany w "Celu" w kolizji z "Bohaterem".

 

Co musze dopisać aby przy zderzeniu bohatera z celem w osi X nastąpiło usunięcia bohatera z planszy lub rozpoczęniu gry od nowa (z życiami sobie poradze :) ).

 

Mam nadzieje że znajde tutaj pomocną dłoń... ekhm. może lepiej pomocny kod.

 

Pozdrawiam, LoveLeady

Odnośnik do komentarza
Udostępnij na innych stronach

@warcrawt: Źle.

GML
if (other.y-8<y && other.vspeed>0)

instance_destroy();

 

Jakby Pan przeczytał dokładniej mój pierwszy post to napewno zobaczył by Pan że mam kod na zabijanie celu poprzez oś Y.

 

@Warcraft

 

Prawie dobrze, tylko chodziło mi o to ze przez oś X zostanie zabity BOHATER a nie CEL, chyba że źle wpisałem kod lub w zlym miejscu

 

W "CEL" --> kolizion with oject "bohater" --> execute piece of code

 

//Zabicie przez naskok
if (other.y<y-8)
&& (other.vspeed>0)
{
instance_destroy()
}

//lewo (ZABIJA CEL A NIE BOHATERA!)
if (other.x<x-8)&&(other.hspeed>0)
{
instance_destroy();
}
//prawo (ZABIJA ZABIJA CEL A NIE BOHATERA)
if (other.x>x+8)&&(other.hspeed>0)
{
instance_destroy();
}

 

Pozdrawiam, LoveLeady

Odnośnik do komentarza
Udostępnij na innych stronach

Link

Tu masz przykład platformówki.

Jest tam skakanie na wrogów :P

 

Próbowałem ale wtedy przy kolizji w każdym punkcie celu następuje zabicie bohatera. Ja potrzebuje skryptu który niszczy bohatera przy kolizji w osi X.

 

Własciwie potrzebuje tylko "komendy" gml która niszczy kokretny object.

 

 

//lewo (ZABIJA CEL A NIE BOHATERA!)
if (other.x<x-8)&&(other.hspeed>0)
{
instance_destroy(); //<-- zabija CEL a chce aby zabijało BOHATERA
}
//prawo (ZABIJA ZABIJA CEL A NIE BOHATERA)
if (other.x>x+8)&&(other.hspeed>0)
{
instance_destroy(); //<-- zabija CEL a a chce aby zabijało BOHATERA
}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy
with (other) instance_destroy();

 

?

 

 

lub bezpieczniej: with (bohater) instance_destroy();

 

Oj, chyba się od poniedziałku na serio zabieram za ten wielki tutorial do Game Makera, od podstaw aż do rozbudowanej gry. Tylko najpierw takową muszę napisać :P

Odnośnik do komentarza
Udostępnij na innych stronach

Czy ja wiem czy bezpieczniejszy? ;D Może w twoim wypadku jest tylko jeden obiekt bohater, ale w niektórych mogłoby być kilku ( np w grze dla 2 graczy - tak nie mylicie się, na tym samym obiekcie ;) ), więc użycie other jest w tym wypadku jedynym sensownym wyjściem. Jak dla mnie bezpieczniej z other. Można najwyżej sprawdzić czy ten 'other' to instancja obiektu bohater i git!

Odnośnik do komentarza
Udostępnij na innych stronach

Czy ja wiem czy bezpieczniejszy? ;D Może w twoim wypadku jest tylko jeden obiekt bohater, ale w niektórych mogłoby być kilku ( np w grze dla 2 graczy - tak nie mylicie się, na tym samym obiekcie ;) ), więc użycie other jest w tym wypadku jedynym sensownym wyjściem. Jak dla mnie bezpieczniej z other. Można najwyżej sprawdzić czy ten 'other' to instancja obiektu bohater i git!

 

 

Przy użyciu other kasowało mi "cel" po dotkniecu z podłożem.

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