Skocz do zawartości

Double-click i prędkości


Rekomendowane odpowiedzi

Siemanko, coś tam sobie tworzę w tak zwanym międzyczasie, ale natknąłem się na przeszkody.

 

Numer 1.

 

Postać tworzy pocisk, jak wiadomo, żeby trafić, musi być szybki, niestety, ustawiłem prędkość lotu na 60(wolniej nie da rady), ale mimo ewidentnej kolizji z celem, nie zawsze jest wykonywana akcja, dlaczego ? Odznaczyłem precyzyjną kolizję, kula otrzymała również maskę większą od sprite (rozmiar nominalny pocisku 2x1).

 

Numer 2.

 

Postać trzyma broń, ale nie celuje, opuszczanie broni itp już ogarnąłem, ale mam inny kłopot. Za akcję strzelana odpowiada standardowo lewy myszy, ale chcę zrobić, aby pierwsze kliknięcie wywołało akcję celowania (czyli jest na true) a dopiero drugie (przed upływem alarmu) na oddanie strzału, niestety głowiłem się nad tym sporo, ale za każdym razem przy pierwszym kliknięciu postać od razu strzela(menda). W akcji lewy myszy jest ustawione że celuje = true a potem że jeśli celowanie true to wszystko co ze strzelaniem związane (osobne kody)

Co robię źle? Pozdro :)

Odnośnik do komentarza
Udostępnij na innych stronach

Tak też zrobiłem, nadal nic, oto kod z GLB

 

GML
if celowanie=true{

// strzelanie

_len = sprite_get_width( sprite_bron[ bron ] ) - sprite_get_xoffset( sprite_bron[ bron ] ) //odległosć w której zostanie stworzony pocisk

_x = lengthdir_x( _len , direction )

_y = lengthdir_y( _len , direction )

 

if ( ammo_wmagazynku[ bron ] > 0 and can and laduj )

{

i = instance_create( x + _x , y + _y , pocisk_typ[ bron ] ) //tworzymy pocisk

i. direction = direction // nadajemy mu cechy

i. image_angle = direction

i. sprite_index = bullet_sprite[ bron ]

i. speed = bullet_speed[ bron ]

i. damage = weapon_damage[ bron ]

ammo_wmagazynku[ bron ] -= 1 // odejmujemy od stanu amunicja aktywnej broni 1

can = false

alarm[ 0 ] = weapon_time[ bron ]

sound_play ( weapon_sound[ bron ] )

shoot = true

alarm[ 2 ] = sprite_get_number( sprite_strzal[ bron ]) *1

image_index = 0

}

if celowanie=true{

alarm [ 3 ] = sprite_get_number(sprite_trzyma[ bron ]) *150

trzyma=false}

}

 

 

celowanie = true

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Mam nadzieję że administracja wybaczy trippleposta, ale niestety, nadal problem z kolizją, pocisk ma smugę, sprite(niewidoczny) rozmiar 16x16, nadal potrafi przelecieć przez ścianę 32x16. Co można z tym zrobić ? Dodam, że step pocisku zawiera:

GML
collision = collision_line( xprevious, yprevious, x, y,sciana_parent, true, true );

if( collision != noone ) {

event_perform( ev_collision, collision.object_index );

 

with( collision ) {

event_perform( ev_collision, other.object_index );

}

}

Nie mam już pomysłu...

 

@Edit, sory, zamknijcie ten temat w cholerę, naprawiłem to już...

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