Skocz do zawartości

Problemy z lengthdir_x


RaistlinBlackRobe

Rekomendowane odpowiedzi

Otóż wykonałem skrypt ataku(pchnięcia) za pomocą timeline i zmiennej. Wygląda to tak:

Hero(kawałek) Step:

switch(atype)
        {case 0: timeline_index=tml_slash; if slashing=1 then timeline_position=0; attack=1; break;
        [color=#FF0000]case 1: timeline_index=tml_stab; if stabing=1 then timeline_position=0; attack=1; break;[/color]}

Broń Draw:

draw_sprite_ext(spr_weapon, 0, obj_hero.x + lengthdir_x(18+obj_hero.stab,obj_hero.image_angle), obj_hero.y + lengthdir_y(18,obj_hero.image_angle-70), 2, 2, obj_hero.direction+obj_hero.slash, image_blend, image_alpha);

W timeline jest na początku stabing=0, później są stab+= i stab-=, a na końcu stabbing=1.

Problem: broń zawsze porusza się w poziomie.

Odnośnik do komentarza
Udostępnij na innych stronach

Wzory redukcyjne znasz? Po co te -70?

draw_sprite_ext(spr_weapon, 0, obj_hero.x + lengthdir_x(18+obj_hero.stab,obj_hero.image_angle), obj_hero.y + lengthdir_y(18,obj_hero.image_angle), 2, 2, obj_hero.direction+obj_hero.slash, image_blend, image_alpha);

Odnośnik do komentarza
Udostępnij na innych stronach

Wzory redukcyjne znasz? Po co te -70?

draw_sprite_ext(spr_weapon, 0, obj_hero.x + lengthdir_x(18+obj_hero.stab,obj_hero.image_angle), obj_hero.y + lengthdir_y(18,obj_hero.image_angle), 2, 2, obj_hero.direction+obj_hero.slash, image_blend, image_alpha);

Wczesniej bez tego -70 obrót był nierównomierny, ale usunięcie niepotrzebnego wyrazenia nie zaradziło sprawie.

EDIT:

Hmm, może by ustawić origin zależny od zmiennej. Niestety nie wiem jakiego wyrażenia/funkcji użyć. Pamiętam, że jakis topic był, ale nie mogę znaleźć. Gdyby ktoś mógł podać link do tamtego tematu albo podac rozwiązanie to byłbym wdzięczny.

EDIT2:

Znalazłem już. Teraz tylko pytanko jak zrobic, aby zmiana originu sprite'a odwoływała się do rysowania w tylko jednym objekcie.

Odnośnik do komentarza
Udostępnij na innych stronach

To moze byc troche pamieciozerne, ale:

 

Create:

sprite=sprite_duplicate(sprite_index)
<kod zmiany originow, np: sprite_set_offset(sprite,xorigin,yorigin)>

Odnośnik do komentarza
Udostępnij na innych stronach

To moze byc troche pamieciozerne, ale:

 

Create:

sprite=sprite_duplicate(sprite_index)
<kod zmiany originow, np: sprite_set_offset(sprite,xorigin,yorigin)>

 

Dzięki. Myślę, że ten posiłek pamięciowy przejdzie przez mój system commanderów(jak graliście na pegazusie w der langrisser to wiecie o co chodzi :D ). Narazie nie zamykam. Tak na wszelki wypadek gdyby pojawiły się jakieś problemy.

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