Skocz do zawartości

Obro wieży(chodzenie wstronę obrotu) (strzelanie w stornę obrotu)


pivot18

Rekomendowane odpowiedzi

Jak w temacie. :bye1:

Mam problem gdy obracam działo. ^_^

Obraca sie sprawnie lecz nie wychodzi chodzenie działem (bo działo to postać :lol2: )

Gdy strzelam to w stronę 0.x,0.y. -_-

Chyba wiem jak to zrobić ale nie znam kodu :glare:

 

Chyba to ma być tak:

 

Strzał leci w stronę direction.x direction.y postaci.

A tak samo z chodzeniem.

 

Z góry Dzięx

 

E:aha kod odpowiedzialny za obrót jest taki xd

GML (step)
dir = point_direction(x,y,mouse_x,mouse_y)

obrot = dir - direction

image_angle = direction

 

if (obrot>0 and obrot<180) {direction += 4}

if (obrot<0 and obrot>-180) {direction -= 4}

if (obrot>180) {direction -= 4}

if (obrot<-180) {direction += 4}

 

if speed >= 7

{

speed = 7

}

Odnośnik do komentarza
Udostępnij na innych stronach

Weź kurde napisz to jakoś po ludzku. Co chcesz zrobić? Jak ma wyglądać to chodzenie? Co nie działa?

 

EDIT:

direction=point_direction(x,y,mouse_x,mouse_y);

O to chodzi? :P

To ustawi kierunek w stronę kursora.

Jeszcze jakiegoś speeda nadaj:

speed=5;

I jedzie.

Odnośnik do komentarza
Udostępnij na innych stronach

No właśnie...

Masz powiedźmy tu czołg:

 

{]-

 

On odrazy tej lufi nie przesunie za siebie xd

 

Dzięki... Chodzenie działa :)

Jeszcze tylko strzelanie :D

 

E: ej! chyba wiem xd

Zrobic obiekt który będzie odwrócony w tą samą stronę co postać!

...

...

Dobra xd to sensu nie ma xd

Odnośnik do komentarza
Udostępnij na innych stronach

No to w stepie ustawiaj sobie zmienną dir_cel w stronę myszki

I jeśli dir_cel jest większy od direction to trzeba zwiększać direction, a jak mniejszy to zmniejszać żeby direction dążył do dir_cel. Tylko zabezpiecz przed takimi wypadkami że jak dir_cel=10, a direction=350 to musi dodawać a nie odejmować :P

Odnośnik do komentarza
Udostępnij na innych stronach

Nie to jest do lufy czołgu.

Nie jestem zwolennikiem dawania gotowego kodu. Trzeba uczyć się myśleć :)

Dałem ci gotowe rozwiązanie.

 

W zmiennej cel_dir przechowujesz jak ma być obrócona lufa.

I zależnie od tego jak ma być obrócona, a jak jest to kręcisz nią w odpowiednim kierunku :)

 

Dałem ci wcześniej funkcje która zwraca kierunek do kursora.

Odnośnik do komentarza
Udostępnij na innych stronach

Załóżmy że obracasz direction o 5.

Teraz jeśli direction jest równe 13, a dir_cel 14 to direction się zwiększy o 5 i będzie równe 18. Wtedy się zmniejszy, znów zwiększy i sie będzie trzęsło.

Jak temu zaradzić? Mamy funkcję max.

Dodawaj do direction to co jest większe: 5 czy to ile mu brakuje do dir_cel

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