MZG Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Tak jak w temacie, jak zrobić żeby po upadku z danej wysokości odbierało trochę hp w zależności co do szybkości upadku np: z 50 pixeli tracisz 5 hp a z 200 pixeli tracisz 20 hp? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Hmm ja bym cos pokombinował chyba z GML distance_to_object(obj_podloga) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 19 Kwietnia 2010 jak masz zmienna SpeedY, czy co tam masz to sobie wpisujesz przy kolizji z ziemia (zakladajac ze speed caly czas rosnie przy spadaniu) if (SpeedY > 5) { hp -= SpeeY *2; } oczywiście warości przykładowe Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 jam mam grawitacje z FAQ i nie mam zmiennej SpeedY. Jak takową zadekralować? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Inaczej, tutaj wchodzi trochę fizyki. Masz tak, prędkość z jaką porusza się obiekt w dół i jego przyspieszenie, odpowiednio vspeed i gravity, a chcesz mieć drogę jaką pokonał. http://pl.wikipedia.org/wiki/Ruch_jednostajnie_przyspieszony To się przyda. Dokładniej ten wzór: s0 = 0, v0 = 0, brakuje nam tylko t, a mamy podane i jest równe gravity. t policzysz z: Tu v0 dalej = 0, po przekształceniu masz: t = v/a Więc Twój obowiązujący wzór na pokonany dystans to: s = (a*(v/a)^2)/2 Zamieniając to na GML przy kolizji z ziemia policzysz wysokość tak: GML wysokosc = (gravity*power(vspeed/gravity,2))/2;Jeśli się nie jebłem to jest ok. Pytania? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 tylko jak stoje na ziemi to jest GML gravity = 0 i wywala errora o dzieleniu przez zero Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 19 Kwietnia 2010 A gravity nie powinno być stałą? Nvm, w każdym razie to daj sobie if(gravity > 0) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Ja mam grawitacje z FAQ, a tam jest: GML if place_free(x,y+1) {gravity = 0.5} else {gravity = 0} No działa, ale koleś skacze i 36 hp mu odbiera :/ EDIT: Zmniejszyłem skoczność ale i tak duże liczby, w dodatku wychodzą ułamki (zapomniałem kod na zaokrąglanie) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 AntY. Na to, że przykładowy system platformowy GMa jest do kitu nic nie poradzę. :) Wiesz, nie bawmy się w teorie, zrób łopatologicznie tak jak to AntY zaproponował: jak masz zmienna SpeedY, czy co tam masz to sobie wpisujesz przy kolizji z ziemia (zakladajac ze speed caly czas rosnie przy spadaniu) if (SpeedY > 5) { hp -= SpeeY *2; } oczywiście warości przykładowe Tylko działaj na vspeed. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 No dobra, ale cały czas są ułamki, przypomni mi ktoś kod na zaokrąglanie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 GML round( x ) ceil( x ) floor( x ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Tera w ogóle nie odejmuje życia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
M@ILOSZ Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Pewnie ci zaokrągla do zera. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dzaher Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Tu masz przykład jak to zrobić: Download Jest to pod gm8 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MZG Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 działa ale trzeba było zamiast *2 to /2 bo za dużo hp odbierało THX wszystkim! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kimonek Opublikowano 23 Kwietnia 2010 Udostępnij Opublikowano 23 Kwietnia 2010 Dzaher dzięki za przykład. Przydał mi się :) :D 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ę