Skocz do zawartości

Ludek po skoczeniu wbija sie w ziemie


Rekomendowane odpowiedzi

step u ludka:

GML
if keyboard_check(vk_up) and !place_free(x,y+1)

{

y-=2

vspeed=-10

}

if place_meeting(x,y+1,o_ziemia)

{

vspeed=0

move_contact_solid(270,4)

}

if place_free(x,y+1) {gravity=0.5} else {gravity=0}

if keyboard_check(vk_left) or keyboard_check(vk_right)

{

if keyboard_check(vk_left)

{

dir='left'

sprite_index=s_player_step_left

if place_free(x-5,y) then x-=5

}

if keyboard_check(vk_right)

{

dir='right'

sprite_index=s_player_step_right

if place_free(x+5,y) then x+=5

}

}

else

{

if dir='left' then sprite_index=s_player_stand_left

if dir='right' then sprite_index=s_player_stand_right

}

gdy skocze ludkiem to on poleci do gory, potem spadnie i wbije sie w ziemie (o_ziemia) do połowy, a na starcie gry leci z gory i spada na nią i nie wbija sie w nią.. czemu?

 

edit: mogę wysłać plik

Odnośnik do komentarza
Udostępnij na innych stronach

if keyboard_check(vk_up) and !place_free(x,y+1)

{

y-=2

vspeed=-10

}

no cholerę to y-=2? O.o

 

if place_meeting(x,y+1,o_ziemia)

{

vspeed=0

move_contact_solid(270,4)

}

ja bym polecał place_free. Byś miał to odrazu dla wszystkich obiektów solidnych. Chyba że po prostu o_ziemia to parent wszystkim ziem.

Poza tym zamień move_contact_solid i vspeed miejscami i zamiast długości 4 wstaw tam vspeed

Możesz też dodać do warunku że tylko jeśli vspeed>0. To zoptymalizuje kod. Po co ma zerować prędkość skoro już jest zerem? Zwłaszcza że z tego co wiem move_contact_solid raczej nie powinno sie zbyt często wykonywać a teraz będzie się robić zawsze jak player stoi.

 

if place_free(x,y+1) {gravity=0.5} else {gravity=0}

Nie przepadam za wbudowaną grawitacją. Lepiej samemu zwiększać vspeeda. Ale skoro ci tak wygodniej...

 

if keyboard_check(vk_left) or keyboard_check(vk_right)

{

if keyboard_check(vk_left)

{

dir='left'

sprite_index=s_player_step_left

if place_free(x-5,y) then x-=5

}

if keyboard_check(vk_right)

{

dir='right'

sprite_index=s_player_step_right

if place_free(x+5,y) then x+=5

}

}

 

Co to w ogóle jest?! Pomyśl chwilę nad tym kodem a zobaczysz jak bezsensowny on jest! :/

Niedawno ktoś mi na PW wysyłał identycznie kretyński kod jak prosił o pomoc. :P

 

sprite_index=s_player_step_left

Domyślam się że to jest sprite odwrócony w lewo. Po cholerę robić dwa sprity dla lewo i dla prawo? Nie możesz człowieku zrobić odbicia lustrzanego? image_xscale=-1

 

else

{

if dir='left' then sprite_index=s_player_stand_left

if dir='right' then sprite_index=s_player_stand_right

}

 

Też bez sensu.

 

A plik wyślij. Jak to wszystko poprawisz powinno działać, ale może masz tam więcej takich bezsensownych kodów.

Tylko nie w gmk!!!

Odnośnik do komentarza
Udostępnij na innych stronach

ale nie moge przekonwertowac bo ten konwerter jest w javie. jave mam a i tak nie moge tego włączyc

edit:

no cholerę to y-=2? O.o

 

no bo:

 

nacisniecie strzalki do gory powoduje ze vspeed = -10, i wtedy ludek ma podskoczyc.. ale gdy ludek dotyka o_ziemia to vspeed wciaz = 0 wiec nie podskoczy, to dalem y-=2 zeby nie dotykal ziemi i wtedy zrobil vspeed=-10 x)

Odnośnik do komentarza
Udostępnij na innych stronach

nacisniecie strzalki do gory powoduje ze vspeed = -10, i wtedy ludek ma podskoczyc.. ale gdy ludek dotyka o_ziemia to vspeed wciaz = 0 wiec nie podskoczy, to dalem y-=2 zeby nie dotykal ziemi i wtedy zrobil vspeed=-10 x)

 

Boże człowieku.

Skoro masz takie coś to się nie dziw :/

Najpierw sprawdzaj place_free i zeruj vspeed a dopiero potem sprawdzaj naciśnięcie strzałki. Tak trudno na to wpaść?

Zresztą gdybyś zrobił wszystko co mówiłem to by nie było tego problemu (chodzi o to jakbyś dodał ten dodatkowy warunek).

Widać, że kompletnie lejesz na to co ja mówię.

 

ta, najlepiej będzie jak własnego gm-a napisze

Dwa słowa:

Bez komentarza.

Tym zdaniem się po prostu pogrążyłeś.

Napisanie własnego ruchu nie boli.

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