Skocz do zawartości

Problem ze spadającą przeszkodą


Cygnus

Rekomendowane odpowiedzi

Witam mam taki problem...

 

mam sobie obiekt spadający,no i obecnie tak jest,że ten obiekt spada dopiero jak zrobię skok bohaterem w jego pobliżu lub jak się znajduje bezpośrednio pod nim..o ile wykonam skok.

Nie o taki efekt mi się rozchodzi..Chciałbym żeby ten obiekt spadające kolce zadziałał jak już się będę pod nim znajdował i wtedy spadł..bez zbędnego mojego skoku bohaterem...

 

o to kod tego obiektu

 

CREATE

 

GML
image_speed = 0;

vspd = 4;

trigger = 0;

 

 

 

STEP

 

GML
//funkcja odpowiadajaca za spadanie obiektu

if instance_exists(obj_player)

 

{

if ((obj_player.x < x) && (obj_player.x + 96 > x))

 

{

if (obj_player.y > y) && (obj_player.y - 96 < y)

{

trigger = 1

}

 

}

 

if (trigger == 1)

{

y += vspd;

}

 

if (place_meeting(x, y + vspd, par_solid))

{

instance_destroy();

}

 

//zderzenie gracza

scr_death();

}

Odnośnik do komentarza
Udostępnij na innych stronach

Twój błąd jest w obliczeniach. Warunek gdzie sprawdzasz x jest bardzo dziwny i zajęło mi chwilę samo go rozszyfrowanie a to przecież zwykłe porównanie. Spróbuj napisać sobie po polsku w jakich warunkach ma się akcja sprawić. Wtedy mozę zrozumiesz w czym masz problem.

Odnośnik do komentarza
Udostępnij na innych stronach

Twój błąd jest w obliczeniach. Warunek gdzie sprawdzasz x jest bardzo dziwny i zajęło mi chwilę samo go rozszyfrowanie a to przecież zwykłe porównanie. Spróbuj napisać sobie po polsku w jakich warunkach ma się akcja sprawić. Wtedy mozę zrozumiesz w czym masz problem.

 

 

 

Threef

 

wywaliłem linijke kodu

 

GML
if (obj_player.y > y) && (obj_player.y - 96 < y)

 

 

I teraz już wykrywa gracza w pobliżu,nie muszę skakać,ale teraz tak jak mówisz z X jest problem,bo chciałbym,żeby spadały kolce dopiero jak znajdę się pod nimi,a nie jak jestem w pobliżu ich...

Odnośnik do komentarza
Udostępnij na innych stronach

No dobra...wszystko działa bardzo dobrze..ale teraz np chcę więcej tych obiektów spadających porozstawiać na danej scenerii no i problem w tym,że do jakichkolwiek na mapie rozstawionych tych kolców spadających podejdę,to wszystkie opadają nawet te co nie widzę ich,co są w innym miejscu scenerii..A mają przecież opadać tylko te pod którymi się znajduje,a nie wszystkie na mapie.

Jest na to inny sposób niż robić kopie tego obiektu..(bo w końcu korzysta z tego samego sprita) ,ale wtedy musiałbym dużo zrobić kopii inaczej nazwać pododawać mnóstwo kolizji do bohatera..a to bez sensu..

 

Step

GML
//funkcja odpowiadajaca za spadanie obiektu

if instance_exists(obj_player)

 

{

if obj_player.x>x-sprite_xoffset && obj_player.x<x+sprite_xoffset

 

 

{

 

trigger = 1

 

 

}

 

if (trigger == 1)

{

y += vspd;

}

 

if (place_meeting(x, y + vspd, par_solid))

{

instance_destroy();

}

 

//zderzenie gracza

scr_death();

}

 

 

Create

GML
image_speed = 0;

vspd = 7;

trigger = 0;

Odnośnik do komentarza
Udostępnij na innych stronach

A to przypadkiem nie zależy od tego że wszystkie te spadające obiekty mają taki sam ID i jak przypisujesz nowy trigger do obiektu to zmienia się we wszystkich o tym samym ID?

 

 

 

 

 

 

 

 

 

Niby jak mogę mieć ten samo Id skoro każdy jest rozstawiony w innej części mapy..

ok zmieniłem zmienną teraz nazywa się spadanie

Może to być problem w tym,że jak np kolce są pod platformą spadające to tak spadną mimo,że nie znajduje się pod nimi,a nad nimi..w czym problem jest?

One mają spadać tylko wyłącznie jak się znajdę pod nimi,a nie nad nimi..

 

obj_spadajace_kolce

 

Create

 

GML
image_speed = 0;

vspd = 4;

spadanie = 0;

 

 

Step

 

GML
//funkcja odpowiadajaca za spadanie obiektu

if instance_exists(obj_player)

 

{

if obj_player.x>x-sprite_xoffset && obj_player.x<x+sprite_xoffset

 

 

{

 

spadanie = 1

 

 

}

 

if (spadanie == 1)

{

y += vspd;

}

 

if (place_meeting(x, y + vspd, par_solid))

{

instance_destroy();

}

 

//zderzenie gracza

scr_death();

}

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