Skocz do zawartości

Lufa


Rekomendowane odpowiedzi

GML
x=o_wieza.x

y=o_wieza.y

var near;

near=instance_nearest(x,y,o_enemy)

dir=point_direction(x,y,near.x,near.y)

if direction>=360 direction=0

if direction<dir direction+=1

if direction>dir direction-=1

image_angle=direction

czemu direction nigdy nie rowna sie dir? .. ;/

e: moze trzeba zaokrąglić dir?

ale to lipa bo ja bym chcial zeby np sie szybciej ta lufa obracała a przeciez nie trafi jak bedzie +=5 lub -=5 .. jak to zrobic lepiej?

Odnośnik do komentarza
Udostępnij na innych stronach

Lol, Twoja wyobraźnia mnie powala...

 

if direction<dir direction+=1

 

Weźmy taki przykład: dir=10, a direction = 350.

direction>dir, a więc będzie się odejmować... a wystarczyło by tylko dodać do direction 20.

 

Ale pomiśmy to.

Może jakimś cudem tak ma być... :D

 

A więc:

 

Zamiast:

if direction<dir direction+=1

 

Daj:

 

if direction<dir direction+= min(1, abs(angle_difference(direction, dir)));

 

Hmmm... chyba, ze coś zchrzaniłem :)

 

Ed:

GML
//angle_difference(dir1, dir2)

return ((((argument0-argument1) mod 360)+540) mod 360)-180;

Odnośnik do komentarza
Udostępnij na innych stronach

chyba tak bo sie lufa nie rusza ; d
Jak nie rusza :P ?

Musi się ruszać. A zaraz to sprawdzę xd

 

Pierwszy raz w swojej "karierze" piszę takie coś:

Poczekaj, zarz editnę post.

 

Ed: Łap, normalnie zrobione.

GML
dir=point_direction(x, y, obj_enemy.x, obj_enemy.y);

 

if(angle_difference(direction, dir) < 0)

{

direction += min(3, abs(angle_difference(direction, dir)));

}

else if(angle_difference(direction, dir) > 0)

{

direction -= min(3, abs(angle_difference(direction, dir)));

}

 

image_angle = direction;

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