Skocz do zawartości

Zablokowane Problemy z bronią


RaistlinBlackRobe

Rekomendowane odpowiedzi

Robie grę 2d z widokiem z góry(takim jak w Almorze ale od razu mówię, że to będzie coś zupełnie innego, zresztą ja w Almore nigdy nie grałem) i mój Character składa się z kilku części. Składam to oczywiście za pomocą Draw:

draw_sprite_ext( Spr_Lance, 0, x + lengthdir_x( 14, image_angle - 70 ), y + lengthdir_y( 14, image_angle - 70 ), image_xscale, image_yscale, image_angle, image_blend, image_alpha );
draw_sprite_ext( Spr_Arms, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha );
draw_sprite_ext( Spr_Head, 0, x, y, image_xscale, image_yscale, direction, image_blend, image_alpha );
draw_sprite_ext( Spr_Shield, 0, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha );

Noi problem jest następujący: Jak zrobić, aby była sprawdzana kolizja pomiędzy obiektem Obj_Thief, a Spr_Lance, który jest częścią Obj_Char??? Byłbym wdzięczny za wskazówki. Nie prosze o przykłady, żeby nie było, że nie mam wkładu we własną grę. Z góry dzieki.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja kiedyś miałem taki sposób aby tworzyć nowy obiekt który był odpowiedzialny za kolizje x)

Ale teraz to za pomocą "collision_..., lenghtdir_x i lenghtdir_y" ;p

Niestety wyskakuje error.

Skryptu użyłem w Obj_Char:

W Step:

collision = collision_point( lenghtdir_x, lenghtdir_y, Obj_Thief, true, false);

I w Glob Right Button(Mouse):

If Fight = 1
    {
        If collision = true
        {show_message('Uderzylem');};
    };

Zrobiłem straszną głupote tylko nie wiem gdzie(błąd odnosi się do wyrażenia if collision = true {}). :(

Odnośnik do komentarza
Udostępnij na innych stronach

Nalezy jeszcze ustawiac maski na danych miejscach podczas sprawdzania kolizji

Odnośnik do komentarza
Udostępnij na innych stronach

Rady zastosowane. Tylko jak lanca przeszywa powietrze i kieruje swe ostrze na cel to:

ERROR in
action number 1
of Mouse Event for Glob Right Button
for object Obj_Hero:

Error in code at line 13:
       collision = collision_point( lengthdir_x, lengthdir_y, Obj_Mon, true, false);

at position 35: Unknown variable lengthdir_x

Sądzę, że to samo z lengthdir_y. No kod jest taki masło maślane bo funkcje jako argumenty innej funkcji. Próbowałem wielu rzeczy. Nawet deklarowałem je w script z:

return( 14, image_angle - 70 )

Noi jest zdezorientowany.

PS.: Czy obiekt może mieć więcej niż jedną maskę?

Odnośnik do komentarza
Udostępnij na innych stronach

A gdzie argumenty tych funkcji??

Wcześniej je podawałem, ale miałem literówke w nazwie funkcji i przez nią niesłusznie zrezygnowałem z nich. Niestety nie wykrywa kolizji(próbowałem z line i ellipse też). A mógłbyś zaproponować argumenty, bo zaczynam sięgać szczytu Newbowstwa(człowiek myśli, że coś już tam zaczyna łapać, a tu nagle stoczenie i to bolesne). :crying:

Odnośnik do komentarza
Udostępnij na innych stronach

No ok. Już kapuję, z tymże kolizja nie zostaje wykryta. Budowa jest taka: kolizja = collision_...; if kolizja = true then...; Nie jestem w stanie wymyślić gdzie miałby występować błąd. Spróbowałem także wykonać w Draw zastąpić draw_sprite_ext na instance_create. XD zwiecha całego kompa i to dość długa(dość długo z nią walczyłem). Następnie umieściłem instance create nieszczęsne w Glob Right Button(mouse) i dalem tam tez:

do Obj_Lance.x = x + lengthdir_x(14, image_angle - 70 ) and Obj_Lance.y = y + lengthdir_y(14, image_angle - 70 ) until mouse_check_button_released(mb_right) = true;

A potem w Glob Right Button Release(mouse) dałem nie skrypt, a klocek instance destroy Obj_Lance.

Po wyjęciu broni (PPM) gra zwieszona a lanca i tak się nie pojawia. Noi brakło mi rozwiązań.

EDIT:

Już sobie poradziłem. I mówiąc szczerze to to było banalne. ;) Dzieks wszystkim, którzy chcieli pomóc.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...