Cygnus Opublikowano 29 Września 2015 Udostępnij Opublikowano 29 Września 2015 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 Więcej opcji udostępniania...
Threef Opublikowano 29 Września 2015 Udostępnij Opublikowano 29 Września 2015 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 Więcej opcji udostępniania...
Cygnus Opublikowano 29 Września 2015 Autor Udostępnij Opublikowano 29 Września 2015 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 Więcej opcji udostępniania...
lenin Opublikowano 29 Września 2015 Udostępnij Opublikowano 29 Września 2015 GML if player.x>x-sprite_xoffset && player.x<x+sprite_xoffset i sprawdzaj jeszcze czy player ma większy y od kolców Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 29 Września 2015 Autor Udostępnij Opublikowano 29 Września 2015 GML<div class="gml_code">if player.x>x-sprite_xoffset && player.x Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 5 Października 2015 Autor Udostępnij Opublikowano 5 Października 2015 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 Więcej opcji udostępniania...
lenin Opublikowano 5 Października 2015 Udostępnij Opublikowano 5 Października 2015 nigdzie na pewno nie zmieniasz jeszcze trigger na 1? i co masz w scr_death()? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 5 Października 2015 Udostępnij Opublikowano 5 Października 2015 Gdzieś musisz ustawiać zmienną trigger dla wszystki platform albo dla ich parenta, ewentualnie zmień nazwe zmiennej trigger na inną. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 5 Października 2015 Autor Udostępnij Opublikowano 5 Października 2015 Gdzieś musisz ustawiać zmienną trigger dla wszystki platform albo dla ich parenta, ewentualnie zmień nazwe zmiennej trigger na inną. No dobra powalczę z tym,bo kurcze nie chce mi się robić multi obiektów spadających... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MrEvilRobot Opublikowano 6 Października 2015 Udostępnij Opublikowano 6 Października 2015 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? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 6 Października 2015 Autor Udostępnij Opublikowano 6 Października 2015 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 Więcej opcji udostępniania...
kt1117 Opublikowano 6 Października 2015 Udostępnij Opublikowano 6 Października 2015 Musisz dodać warunek że GML obj_player.y>y Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 6 Października 2015 Autor Udostępnij Opublikowano 6 Października 2015 Musisz dodać warunek że GMLobj_player.y>y Dzięki pomogło kt117;) dałem tak: GML if obj_player.y>y-sprite_xoffset Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę