Skocz do zawartości

Zmiana sprita przy chodzeniu w platformowce


Rekomendowane odpowiedzi

Nby nic trudnego, a mam problem.

Zrobilem chodzenie wedlug:

13. Jak zrobić grawitację w grze platformowej?

Najpierw tworzymy obiekt blok, po którym będzie chodził bohater. Należy pamiętać, że blok ma być solid. Następnie robimy obiekt hero, któremu w "step" wklejamy kod:

gml:

if place_free(x,y+1)

{gravity = 0.5}

else

{gravity = 0}

Przy kolizji z blokiem:

gml:

move_contact_solid(270,4)

vspeed = 0

Przy naciśnięciu klawisza w prawo:

gml:

if place_free(x+4,y)

{x+=4}

Przy naciśnięciu klawisza w lewo:

gml:

if place_free(x-4,y)

{x-=4}

Przy naciśnięciu klawisza w górę (skakanie):

gml:

if ! place_free(x,y+1)

{vspeed = -10}

(umiescilem je w keyboard event (right/left) key, w keyboard press event (right/left) key nie dzialaly poprawnie)

I gdy probuje dodac od siebie bloczek [change sprite] przy klawiszu w lewo lub prawo, a kolejny bloczek [change sprite] przy release klawisza w lewo/prawo, to postac sie blokuje.

 

Jakies porady?

Odnośnik do komentarza
Udostępnij na innych stronach

Można łączyć lol. GM i tak konwertuje klocki na kod.

Twój problem zapewne rozwiąże ustawienie masek. Narysuj nowy sprit o kształcie prostokąta, o wymiarach twojej postaci. I ustaw go jako maskę objectowi gracza w polu "Mask". Jeżeli nie masz takiej opcji to w menu File włącz advanced mode.

 

Kod faq umieść w step.

Odnośnik do komentarza
Udostępnij na innych stronach

Nby nic trudnego, a mam problem.

Zrobilem chodzenie wedlug:

(umiescilem je w keyboard event (right/left) key, w keyboard press event (right/left) key nie dzialaly poprawnie)

Po co to rozkładasz, zamiast dać cały kod do step z ewentualnymi zmianami? Dobra nie looknąłem co tam było napisane xd .

 

(umiescilem je w keyboard event (right/left) key, w keyboard press event (right/left) key nie dzialaly poprawnie)

Jeśli chodzi o chodzenie, to dajesz w evencie keyboard, nie keyboard press. Skok może być w press. Grawitacja w step. Kolizja w kolizji (to wiadomo xD). Masz tak zrobione?

Odnośnik do komentarza
Udostępnij na innych stronach

Jako że robisz klockami, napiszę ci tylko teoretycznie.

 

Weźmy na przykład keyboard -> right (czyli tam gdzie chodzenie w prawo). I teraz ma być coś takiego:

JEŚLI sprite nie jest chodzenie_w_prawo TO ustaw sprite chodzenie_w_prawo

 

Tak samo w lewo. W skoku wystarczy od razu ustawić na sprite skakania.

 

 

I tak jak pisał huder wyżej, ustaw maskę sobie.

Odnośnik do komentarza
Udostępnij na innych stronach

gdyż teraz postać od razu na starcie gry ignoruje wszystkie obiekty solid, co za tym idzie spada w dół =/.

Jak masz to w stepie:

GML
if place_free(x,y+1)

{gravity = 0.5}

else

{gravity = 0}

a to w kolizji z solidnym blokiem

GML
move_contact_solid(270,4)

vspeed = 0

 

oraz blok i gracz posiadają maskę, to nie będzie ci spadać.

Odnośnik do komentarza
Udostępnij na innych stronach

Faktycznie działa ^^,

dzięki.

 

 

Żeby nie zakładać nowego tematu,

wie ktoś jak zrobić żeby kółko myszy działało jako zmiana broni? Np:

mouse_wheel_up

instance_create(0,0,ak47)

jeśli jest ak47 to po użyciu

mouse_wheel_up

instance_create(0,0,glock)

jeśli jest glock to po użyciu

mouse_wheel_up

instance_create(0,0,mp5)

 

A gdy

mouse_wheel_down

to leci w odwrotną (mp5, glock, ak47) stronę?

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