Skocz do zawartości

LolikZabijaka

Użytkownicy
  • Postów

    1 180
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Treść opublikowana przez LolikZabijaka

  1. Tym razem wywala buga w skrypcie chodzenia "Unknown function array_length_1d" A otwieranie pliku w GMS, to już w ogóle dramat, bo ciągle bugi wywala.
  2. GML /// @arg speed /// @arg direction var spd = argument0; var dir = argument1; var xtarg = x+lengthdir_x(spd,dir); var ytarg = y+lengthdir_y(spd,dir); if place_free(xtarg,ytarg) { x = xtarg; y = ytarg; } else { var sweep_interval = 10; for ( var angle = sweep_interval; angle <= 80; angle += sweep_interval) { for ( var multiplier = -1; multiplier <= 1; multiplier += 2) { var angle_to_check = dir+angle*multiplier; xtarg = x+lengthdir_x(spd, angle_to_check); ytarg = y+lengthdir_y(spd, angle_to_check); if place_free(xtarg,ytarg) { x = xtarg; y = ytarg; exit; } } } } Wywala błąd przy znaku równości przy tej części kodu: GML var spd = argument0; var dir = argument1;
  3. Nie korzystam w ogóle z GMS, korzystam nadal z Ósemki, miałem długi przestój, nie jestem na bieżąco.
  4. To znaczy ściany są pod kątem prostym wszystkie poustawiane, jednak okrągła maska chrzani wszystko.
  5. Kolejny problem, niby pierdoła, ale wkurza. Chodzi o to, że są porobione pewne przeszkody(ściany itp), są ustawione pod różnym kątem, gracz posiada okrągłą maskę. Problem polega na tym, że kiedy jestem blisko obiektu, to zahaczam o każdy ostający piksel i postać się blokuje. Czy da się zrobić, aby postać nie przełaziła przez ścianę, ale przy okazji, żeby gładko mogła się wzdłuż niej poruszać, bez blokowania sie o piksele? Dodam że jak wiadomo postać miewa zmienne image_angle. Kod przy kolizji ze ścianą: GML x = xprevious y = yprevious
  6. Daj kod, to wtedy zobaczymy dlaczego się "trzensie" i Ci nie skacze xD
  7. Tu może być też babol(po części sam tworzyłem część instancji) GLOB LEFT BUTTON GML if celowanie=2 and bieganie=false{ // 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 ) kat_rozrzutu = kat_rozrzutu[ bron ] ilosc_pociskow_min = ilosc_pociskow_min[ bron ] ilosc_pociskow_dodatkowych = ilosc_pociskow_dodatkowych[ bron ] _x = lengthdir_x( _len , direction ) _y = lengthdir_y( _len , direction ) if ( ammo_wmagazynku[ bron ] > 0 and can and laduj ) { repeat( ilosc_pociskow_min + irandom( ilosc_pociskow_dodatkowych ) ) { i = instance_create( x+ _x, y + _y, pocisk_typ[ bron ] ) //tworzymy pocisk i. direction = random_range( direction - kat_rozrzutu, direction + kat_rozrzutu ) // rozrzut 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 ] if ( ammo_wmagazynku[ bron ] > 0){ instance_create( x,y, obj_luska[ bron ] ) sound_play ( weapon_sound[ bron ] ) } if ( ammo_wmagazynku[ bron ] = 0) { sound_play( sound_last[ bron ] ) instance_create( x, y, o_ostatnia_luska[ bron ] ) } shoot = true alarm[ 2 ] = sprite_get_number( sprite_strzal[ bron ]) *(strzal_czas[bron]) image_index = 0 } } if celowanie=2 { alarm [ 3 ] = sprite_get_number(sprite_trzyma[ bron ]) *150 trzyma=false} if celowanie=1 { alarm [ 3 ] = sprite_get_number(sprite_trzyma[ bron ]) *150 trzyma=false} if celowanie=0{ celowanie = 1 } bieganie=false
  8. Cholera, dalej się ze sobą zlewają. @EDIT - Czy mogą mieć na to wpływ inne zdarzenia (stepy, itp) ?
  9. Przykro mi, ale ciągle to samo, może podrzucę Wam cały kod z DRAW, może tam jeszcze jest gdzieś jakiś babol: GML if trzyma=false { if (shoot) { if ( (ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0) and shoot==false ) draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) else draw_sprite_ext( sprite_strzal[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } else draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } draw_set_font( font0 ); draw_set_color( c_white ); draw_set_halign( fa_center ) xx = view_xview[ 0 ] + view_wport[ 0 ] - 107 // pozycja panelu yy = view_yview[ 0 ] + view_yport[ 0 ] +1 if ( bron != nic ) //jezeli aktualna bron != nic { draw_text( xx - 15 , yy + 45 , weapon_name[ bron ] ) // rysuje napis z nazwą broni draw_text( xx + 15 , yy + 65 , string( ammo_wmagazynku[ bron ] ) + '/' + string( ammo_zapasowe[ bron ] )) // rysuje ilość ammo } if ( shoot == false and trzyma=true and celowanie=0 ) { if ( shoot=false ) draw_sprite_ext(sprite_trzyma[bron],image_index,x-4,y+4,image_xscale, image_yscale,direction ,c_black,0.3) draw_sprite_ext( sprite_trzyma[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) } else { draw_sprite_ext(sprite_bron[bron],image_index,x-4,y+4,image_xscale, image_yscale,direction ,c_black,0.5) draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } draw_healthbar(view_xview+32,view_yview+16,view_xview+150,view_yview+20,stamina,c_white,c_red,c_aqua,0,1,1); draw_healthbar(view_xview+32,view_yview+23,view_xview+150,view_yview+30,zdrowie,c_white,c_red,c_lime,0,1,1);
  10. Chyba łapię, zmienne które stąd wywaliłeś nie są potrzebne przy DRAW @EDIT - Nie ja pisałem ten silnik, autorem jest Marek.S @EDIT II - Coś pochrzaniłeś, teraz już w ogóle nie rysuje mi strzału.
  11. pierwsza linijka odpowiada za cień, wywaliłem i nic, a z nawiasu po wywaleniu pierwszej linijki warunku ze sprite_bron przestaje rysować sprite_strzal
  12. 1.Sprite przy strzelaniu, czyli akcja. (sprite_strzal) 2.sprite, przy celowaniu, czyli inne zdarzenie.(sprite_bron) Każdy z tych spritów powinien być pokazywany osobno, w zależności od akcji Jednak kiedy już oddaję strzał, powinien być widoczny tylko "Sprite_strzal", ale widoczne są oba na raz, tak jak na rycinie nr 3. Mam nadzieję że załapałeś :D
  13. Ostatnio regularnie tutaj piszę :D Kolejny problem na jaki natrafiłem, to draw w postaci gracza, mianowicie, posiada on różne sprite, zależne od wykonywanej akcji(strzał, celowanie), problem polega na tym (dopiero teraz go wychwyciłem), że "sprite_strzał"(po prostu animacja wystrzału,kiedy zmienna "shoot" jest true) zlewa się ze "sprite_bron"(animacja celowania), po prostu nachodzą na siebie, a jak wiadomo wygląda to raczej mało estetyczne. Oto fragment kodu "DRAW" odpowiedzialny za owe akcje: GML draw_sprite_ext(sprite_bron[bron],image_index,x-4,y+4,image_xscale, image_yscale,direction ,c_black,0.5) if ( shoot == true ) { if ( ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0 and shoot=false ) draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) else draw_sprite_ext( sprite_strzal[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } else draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } Gdzie jest błąd?
  14. 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ż...
  15. LolikZabijaka

    Rzut granatem

    Witam, długo się z tym siłowałem, ale nie ma rezultatu. Potrzebuję dwóch tekstur, podrzucam grafikę postaci jako wzór: Numer 1. Potrzeba, aby postać trzymała granat nad głową, tak jakby miałaby zaraz rzucić. Numer 2 Klatka, kiedy już rzuca(moment kiedy łapa jest wyprostowana i puszcza) Wszystko poprosiłbym zrobić pod tę postać. Dzięki i pozdro :)
  16. Przy nim czuła się jak w Bagdadzie, kochała pakistańskie disco, taaa! jeee! :D
  17. No i po mistrzowsku, podziękował :D
  18. Na starcie powiem, że SZUKAŁEM na forum rozwiązania, ale takowego nie znalazłem. W prostych słowach, utworzyłem sobie o_dach, który po zetknięciu z bohaterem staje się niewidoczny, co by móc budynek eksplorować. Problem polega na tym, że ów dach znika tylko częściowo, to znaczy, że znikają te kafelki, z którymi bezpośrednio styka się gracz, a mnie chodzi o to, żeby powiedzmy w chwili kolizji znikały wszystkie obiekty tego typu w promieniu, dajmy na to 500 pikseli. Jak wiadomo po opuszczeniu budy (kończeniu kolizji) dach powinien pojawić się znów. Oto kod ze STEP dachu(parenta): GML visible = !place_meeting(x,y,o_gracz);
  19. Nadałem im parent, jednak po sprawdzeniu waszych metod, nadal to samo, kod mam wpisać w step parenta, czy kafelka dachu ?
  20. Pierdoła, ale nie mam pomysłu, szukałem, ale nie znalazłem. Chodzi o dach Top-Down, ustawiłem parenta, co by nie robić wszystkiego osobno, problem polega na tym, że kiedy wchodzę w interakcję w dachem znika tylko część na której stoję(składa się z kafelków 32x32, a ja chcę żeby znikały wszystkie po wejściu. Oto kod: GML if (place_meeting(x,y,o_gracz)) visible=false; else visible=true;
  21. 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ą :)
  22. 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
  23. 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 :)
×
×
  • Dodaj nową pozycję...