LolikZabijaka Opublikowano 2 Lipca 2017 Udostępnij Opublikowano 2 Lipca 2017 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 Więcej opcji udostępniania...
Uzjel Opublikowano 2 Lipca 2017 Udostępnij Opublikowano 2 Lipca 2017 Tak na szybko. 1. Najszybciej to zwiększ wielkość pocisku, dodaj mu np smugę 2. Zła kolejność kodu, najpierw kod na strzelanie, potem na aktywowanie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LolikZabijaka Opublikowano 2 Lipca 2017 Autor Udostępnij Opublikowano 2 Lipca 2017 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 Więcej opcji udostępniania...
LolikZabijaka Opublikowano 3 Lipca 2017 Autor Udostępnij Opublikowano 3 Lipca 2017 Dobra, rozgryzłem to, udało mi się to z robić ze zdarzeniem puszczenia klawisza myszy. Kilka godzin się z tym bujałem, ale ogarnąłem. Wszystko załatwione, dzięki Ujzel za podpowiedź ze smugą :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LolikZabijaka Opublikowano 12 Lipca 2017 Autor Udostępnij Opublikowano 12 Lipca 2017 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę