Skocz do zawartości

Lengthdir'y.


Gość

Rekomendowane odpowiedzi

Witam :) Mam problem z lengthdirami. A mianowicie postać wygląda mniej więcej tak: Player i obraca sie tak jakby na głowie :P i teraz, gdy ustawiam:

GML
bullet = instance_create(x + lengthdir_x(42, direction), y + lengthdir_y(10, direction), obj_player_bullet);

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

bullet.speed = 10;

bullet.image_angle = bullet.direction;

i pocisk zostaje wystrzelony, to za każdym razem gdy się obracam i jest inny kierunek niż prawo czy lewo, to pocisk zostaje wystrzelony z ramienia, głowy czy innych części ciała ;/ Dodam, że postać obraca się do myszki, mam tzw. "bujanie się" jak w Almorze i nawet gdy uwzględnię ten obrót chodzenia przy tworzeniu pocisku, to i tak nic nie zmienia. Mam nadzieje, że dość dokładnie opisałem problem i podałem potrzebny kod.

Z góry dzięki :)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
bullet = instance_create(x + lengthdir_x(30, direction-5), y + lengthdir_y(30, direction-5), obj_player_bullet);

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

bullet.speed = 10;

bullet.image_angle = bullet.direction;

podaj dokładne rozmiary sprita i punkt na nim z którego chcesz wystrzelić pocisk, to będzie łatwiej trafić z parametrami lengthdirów.

Podałem kod tyko orientacyjnie i nie wiem czy trafiłem w dobry punkt.

Odnośnik do komentarza
Udostępnij na innych stronach

Wymiary: 44x37 px. Teraz już jest lepiej, ale nadal nie strzela z broni :) I jak ustawie np. lengthdir_y(70, direction - 5) to wtedy jak jest skierowany do góry to zaczyna strzelać właśnie z 70px od playera. Już nie wiem jak to ustawić. Od 2 dni próbuje :/

Odnośnik do komentarza
Udostępnij na innych stronach

długość i kierunek w obu funkcjach length dira musi być taka sama jeżeli twoja broń się obraca po okręgu a nie elipsie

podaj jeszcze punkt na spricie gdzie jest umieszczona na nim broń bo tak to moża strzelać na oślep do jutra.

Odnośnik do komentarza
Udostępnij na innych stronach

W takim razie to będzie już dobrze tworzyć pocisk.

GML
bullet = instance_create(x + lengthdir_x( 33,direction-26 ), y + lengthdir_y( 33, direction-26 ), obj_player_bullet);

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

bullet.speed = 10;

bullet.image_angle = bullet.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ę...