Skocz do zawartości

Silnik porusznia samochodów


Rekomendowane odpowiedzi

No hej tam po drugiej stronie moniotra :bye1:

 

Skoro, jak sam przyznałeś, że nie masz jeszcze doświadczenia aby stworzyć taki silnik od podstaw, to pora aby się nauczyć ^_^

Jest tu wiele mądrych głów (nie wliczam w to siebie :lol: dopiero zaczynam bardziej rozumieć GML). Na początku zrób coś małego, zacznij od podstaw takiego silnika. Pomogę Ci (tak jak wielu innych ludzi na tym forum) ale nie napisze za Ciebie kodu, musisz sam trochę pomyśleć.

 

Możesz sobie wypunktować zadania:

1. Narysuj samochód (koniecznie ustawiony w prawo)

2. Pomyśl, jakie zmienne będą Ci potrzebne:

a) speed - prędkość

B ) direction - kierunek

c) image_angle - kierunek obrotu sprite'u

 

3.Programuj (tak wiem, że duży przeskok pomiędzy punktami). Napisze dla Ciebie skrawek kodu, a Ty spróbuj uzupełnić:

 

GML
image_angle = direction; //obracanie samochodu wzgledem kierunku jazdy

if(keyboard_check(ord("W"))) // Jesli nacisniemy W

{

dopisz coś

}

 

if(keyboard_check(ord("S"))) // Jesli nacisniemy S

{

dopisz coś

}

 

if(!keyboard_check(ord("W")) and !keyboard_check(ord("S"))) // Jesli NIE naciskamy ani W ani S

{

if(speed > 0) then dopisz coś

if(speed < 0) then dopisz coś

}

 

 

//Kierunek ruchu - prawo/lewo

if(keyboard_check(ord("A")))

{

dopisz coś

}

 

if(keyboard_check(ord("D")))

{

dopisz coś

}

Na dobry początek powinieneś otrzymać mniej więcej taki wynik: https://drive.google.com/open?id=0By6jjYnhZ...d19YWEZRWEUtdGM

 

 

Myślicie, że to dobry sposób na tłumaczenie? Czy lepiej dać mu już lepszy kod do ogarnięcia? Wydaje mi się, że bardziej podstawowo nie można napisać poruszanie się samochodem :mellow:

Odnośnik do komentarza
Udostępnij na innych stronach

A co do przyśpieszania to można zrobić to tak

GML
///create

sec=0; //zmienna która okresla nam sekundy

///step

if keyboard_check(vk_up)

{

sec+=1/room_speed; //właczenie liczenia czasu do gry.

if sec>=1 {mv_s=1}

if sec>=1.5 {mv_s=2} // z czasem nasza predkosc sie zwiększa

if sec>=2 {mv_s=3}

if sec>=2.5 {mv_s=4}

if sec>=3 {mv_s=5}

}

 

//oczywiście można by było to zrobić pętlą,wtedy nie było by tech 5 if,jednak ja boję się pętli -_-

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