Skocz do zawartości

Muszelki w mario


Rekomendowane odpowiedzi

mam kolejny problem dotyczący super mariana :D

 

muszlaki i kolczatki jak idą np.: w lewo to potem jak się odbija od murku to niezmieniają kierunku obrazka na prawo

 

no i moje pytanko brzmi,jak zrobić żeby potworki zmieniały kierunek ale nie za pomocą dwóch odrębnych spritów ale za pomocom funkcji xscale

Odnośnik do komentarza
Udostępnij na innych stronach

GML
//create

image_speed = 0.1

 

 

//kolizja z obj_mur

move_contact_solid(270,4)

vspeed = 0

 

ustawiłem też bloczkami grawitację i chodzenie

a mam pytanko jak ustawić to za pomocą kodów,bo ja ustawiłem to tylko w postaci że ma iść ciągle w lewo jak coś dotknie to się odbije

 

a plus do tego jak umieścić xscale ??

Odnośnik do komentarza
Udostępnij na innych stronach

GML
//create

image_speed = 0.1

 

 

//kolizja z obj_mur

move_contact_solid(270,4)

vspeed = 0

 

ustawiłem też bloczkami grawitację i chodzenie

a mam pytanko jak ustawić to za pomocą kodów,bo ja ustawiłem to tylko w postaci że ma iść ciągle w lewo jak coś dotknie to się odbije

 

a plus do tego jak umieścić xscale ??

FAQ 13 pkt jeżeli chodzi Ci o to jak ustawić kodem grawitacje

Odnośnik do komentarza
Udostępnij na innych stronach

To mało efektywne podejście, mocno odradzam.

 

 

Na starcie ustaw kierunek w którym ma się poruszać postać, najlepiej za pomocą "1" dla prawo i "-1" dla lewo.

GML
Kierunek = 1; //Zacznij idac w prawo

image_xscale = 1; //xscale musi miec taka sama wartosc jak Kierunek.</span></span>

Teraz kwestia chodzenia. Nie wiem ile wiesz ani ile umiesz, wiec napisze tu conieco. Jezeli bedzie Ci sie chcialo to przeczytac to moze nawet czegos sie dzisiaj nauczysz i moze latwiej Ci bedzie w przyszlosci gry robic.

 

Kolizje mozna robic na dwa sposoby:

Sposob 1: Obiekt reaguje po tym jak wejdzie w pole kolizji(np. Wejdziesz w sciane, wykryje ze w niej jestes, cofnie Cie do poprzedniej pozycji bo w sciane nie wolno wejsc)

Sposob 2: Obiekt sprawdza czy bedzie kolidowac jak sie ruszy. Jezeli nie to sie moze ruszyc.

 

Bardzo mocno polecam podejscie drugie i tego wlasnie podejscia Cie tutaj naucze. Mamy juz zmienna Kierunek, ktora nam mowi w ktora strone bedziemy isc. Masz zapewne ustalona konkretna predkosc postaci jak np. 4 albo 6 albo 8, nie wiem. W tym przykladzie zalozymy, ze predkosc postaci to 4, u siebie wstaw jak Ci pasuje.

 

Prosta matematyka: Liczba * 1 = Liczba. Liczba * -1 = -Liczba. [10*1=10, 10*-1=-10]

I tu wchodzi nasza zmienna. Bo jak zrobimy tak:

GML
x+=4*Kierunek;

To za pomocą tej jednej lini kodu przeciwnik poruszy sie nam w kierunku w ktorym faktycznie idzie, bo kierunek zawsze wynosi 1 lub -1 u nas.

No ale NAJPIERW musimy sprawdzić czy nie ma kolizji. Pamiętaj, używamy sposobu drugiego.

Od tego jest place_free, jeżeli wszystkie przeszkody to solidy lub place_meeting, jeżeli chodzi o konkretny obiekt. Załóżmy, że ustawiłeś solid na każdej przeszkodzie:

GML
if place_free(x+4*Kierunek,y){ //Jezeli nie ma kolizji 4 piksele w kierunku w ktory idziemy

x+=4*Kierunek; //Rusz sie

}

 

Niemniej, chcemy aby stało się coś jeszcze: Jeżeli przed nami jest przeszkoda, chcemy się odwrócić. Dlatego musimy dodać na końcu warunek na taką sytuację:

GML
if place_free(x+4*Kierunek,y){ //Jezeli nie ma kolizji 4 piksele w kierunku w ktory idziemy

x+=4*Kierunek; //Rusz sie

}

else{ //W innym wypadku

Kierunek=-Kierunek; //Odwroc kierunek. z -1 zrobi 1, z 1 zrobi -1

image_xscale=-image_xscale; //Tak samo jak wyzej ale dla image_xscale

}

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