Skocz do zawartości

Szczegółowa Animacja postaci


dyzmek

Rekomendowane odpowiedzi

Witam , mam dla was małą niespodziankę ale i pytanie dlatego piszę właśnie tutaj .

 

Seid Chronicles powstanie jednak przed tą że grą postanowiłem odświeżyć , zrobić remake mojej ostatniej gry z przed 8 lat ,,Seid-Znalezisko ,, według mnie gra która dostała 2 i pół gwiazdki wśród ocen użytkowników naszego szanownego gmclanu , może powrócić w lepszej , dopracowanej odsłonie , staram się zadbać o wszelakie szczegóły .

 

Teraz do rzeczy :)

 

Mam Animacje Seida biegającego  w lewo oraz w prawo .

 

Mam ogólnie 4 animacje 

 

Run_left , run_right , od poruszania oraz dwie od tego jak postać stoi bez ruchu i sobie oddycha w lewo i w prawo .

 

Znalazłem na GMC przykład ruchu platformowego , jednak nie działa on u mnie .

 

Chciał bym osiągnąć to że jak postać przestanie iść np w prawo to by Sprite zmienił się z run_right na postoj_prawo oczywiście w lewą stronę tak samo , proszę o pomoc bądź  jakiś prosty przykład , powrót do Game Makera po kilku latach daje się we znaki , muszę wiele sobie przypomnieć i nauczyć :) dwa dni próbowałem sam zrobić ta animacje metoda prób i błędów ale chce ruszyć z grą dalej i to nie daje mi spokoju :D

 

Za pomoc oczywiście obecność w napisach (Creditsach) 

 

Za pomoc z góry wielkie dzięki :)

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dokładnie tak jak powiedział @adam014, użyj image_xscale, zaoszczędzi Ci to czasu i miejsca związane z tworzeniem sprite'ów. Pamiętaj tylko, żeby każdy sprite patrzył domyślnie w prawo. Co do kodu, będzie to mniej więcej coś takiego:
Jeśli naciśniesz strzałkę w lewo to:
- ustaw sprite na bieganie
- ustaw image_xscale = -1
- ustaw prędkość poruszania się (np. hspeed = -4);

Jeśli naciśniesz strzałkę w prawo to:
- ustaw sprite na bieganie
- ustaw image_xscale = 1
- ustaw prędkość poruszania się (np. hspeed = 4);
(tutaj różnica jest tylko taka, że wartości są dodatnie)

Jeśli nie naciskasz ani strzałki w lewo ani w prawo to:
- ustaw sprite na stanie w miejscu
- ustaw prędkość poruszania się na zero
(image_xscale nie zmieniasz, tak, aby została wartość ostatnio obrana, czyli w lewo albo w prawo)


W kodzie będzie to wyglądać mniej więcej tak:

if(keyboard_check(ord("A"))) //jeśli strzałka w lewo
{
	sprite_index = sHero_run; //ustaw odpowiedni sprite
	image_xscale = -1; //ustaw obrót w którą stronę patrzeć
	hspeed = -4; //ustaw prędkość
}


if(keyboard_check(ord("D")))  //jeśli strzałka w prawo
{
	sprite_index = sHero_run; //ustaw odpowiedni sprite
	image_xscale = 1; //ustaw obrót w którą stronę patrzeć
	hspeed = 4; //ustaw prędkość
}

if(!keyboard_check(ord("D")) and !keyboard_check(ord("A")))
{
	sprite_index = sHero_idle; //ustaw odpowiedni sprite
	hspeed = 0;	//wyzeruj prędkość aby postać zatrzymała się
}

A wynik powinien wyjść mniej więcej taki:
giphy.gif
grafika: https://opengameart.org/content/forest-boy-platformer-animated-character-24x24


edit:
Z tego co się orientuje maziasz gry w game maker 8.1 więc chyba trudno będzie o jakikolwiek przykład projektu :/ 

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