Skocz do zawartości

Cygnus

Użytkownicy
  • Postów

    330
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Cygnus

  1. A jednak jest jeszcze mały bug,który zlokalizowałem... z prawej strony jak idę bohaterem a wróg jest plecami do mnie odwrócony ,to jak mnie namierzy,to bezproblemowo obraca się w prawą stronę do mnie i mnie goni..Natomiast jak przeskoczę na drugą stronę na lewą i wróg będzie plecami do mnie po lewej stronie,to się nie obraca i plecami tyłem do mnie biegnie jak mnie zobaczy:/ Kurcze co jeszcze jest tu nie tak step mojego wroga GML //AI wroga if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } if(!collision_line(x, y, obj_player.x, obj_player.y,true, true) && distance_to_object(obj_player) < 90) { if (obj_player.x<x) image_xscale = -1 else image_yscale = 1 // Obraca sie w lewo lub prawo w zaleznosci od X bohatera. move_towards_point(obj_player.x,y,1); speed=5 } else { speed=0 }
  2. Już ogarnąłem zrobiłem tak i działa;) w STEP wroga GML ///AI wroga if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } if(!collision_line(x, y, obj_player.x, obj_player.y,true, true) && distance_to_object(obj_player) < 90) { if (obj_player.x<x) image_xscale = -1 else image_yscale = 1 // Obraca sie w lewo lub prawo w zaleznosci od X bohatera. move_towards_point(obj_player.x,y,1); speed=5 } else { speed=0 } ładnie się obraca teraz jak mnie wróg zlokalizuje i goni na odpowiedni dystans...tylko teraz ciekawi mnie jedna rzecz,jak jestem blisko krawędzi platformy,to on może np nie zdążyć wyhamować i spadnie wróg,,co zrobić? bo jak w połowie trasy mnie goni to jest wszystko dobrze zdąży zahamować jak mu z pola widzenia zniknę,ale jak jestem już na krawędzi i on przybiegnie a ja gdzieś na następną przeskoczę,to wróg już może nie wrobić i spaść na dół. hmmm..albo może zrobić tak,że on jak mnie zobaczy,to goni,ale jak widzi,że jest krawędź platformy to staje w miejscu na moment i potem się obraca w drugim kierunku...to by rozwiązało problem tego,że wyrobiłby się na końcu platformy i zatrzymał po czym obrócił się i spokojnie już szedł w drugą stronę.
  3. Cześć wszystkim mam taki problem... Otóż robię proste AI no i kiedy jestem blisko wroga,to wszystko ładnie działa..zaczyna mnie gonić na odpowiednią odległość,potem jak się oddalam,to się uspakaja i spokojnie sobie chodzi,ale nie chce się obrócić i goni mnie tyłem,chyba,że nie jestem plecami do niego,wtedy goni mnie normalnie. Próbowałem już różnych sposobów i się zatrzymałem jak go obrócić co jest nie tak? o to kod obj_wroga STEP GML ///Ruch wroga if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } if distance_to_object(obj_player) < 90 { point_direction(x,y,obj_player.x,obj_player.y) direction=point_direction(x,y,obj_player.x,obj_player.y) speed=7 } else { speed=0 } Game Maker studio Pro
  4. w DRAW GUI jest ten napis,ale się rusza..a ma być statyczny nad obj_przejscie na 2,3 sekundy jak najadę na ten obiekt...a w DRAW to już nawet napis się nie wyświetla..nic powalczę z tym w inny sposób.
  5. Cześć wszystkim. Mam taki problem,ustawiłem sobie pasek energii nad wrogami ,ale chciałbym,żeby dany pasek energii wroga znalazł się w odpowiednim miejscu w HUD,czyli jak podejdę do wroga,to dopiero wtedy pasek wroga pojawi się w HUD,a jak odejdę od wroga to zniknie..itd za każdym razem obojętnie do którego wroga podejdę.Próbuje i mi nie wychodzi czy w klockach idzie możliwość ustawienia dystansu? bo tak to jak się ustawi pasek w tym miejscu jak na rysunku HUD to wszystkie paski wszystkich wrogów na danej planszy się tam gromadzą:/a nie o taki efekt chodzi. Tu na rysunku to rozrysowałem... a tu w obj_wrog w Create dałem na te hp takie klocki GMLVAR - set variable maxHP to 5 VAR - set variable hp to 5 VAR - set variable hp_percent to (hp/maxHp)*100 w STEP GMLVAR - set variable hp_percent to (hp/maxHp)*100 no i Draw GMLset the color niebieski draw rectangle - x1-25, y1-40, x2-25+(hp_percent/2) ,y2-50,filled-filled zaznaczone relative set the color-czerwony draw rectangle - x1-25, y1-40, x2 25 ,y2 50,filled -outline i zaznaczone relative a tu kod obj_game_controller ,gdzie znajduje się w nim HUD DRAW GUI GML///Draw player HUD draw_sprite(spr_UI_topleft,1,0,0); draw_set_color(c_white); var __guiW = display_get_gui_width(), __guiH = display_get_gui_height(); draw_sprite(spr_healthbar,0,0,0); draw_text(32, 44, string(" Lives: " + string(global.life))); draw_text(36, 88, string(" Coins: " + string(global.coins))); draw_text(36, 110,string(" Watch: " + string(global.watch))); //punkty draw_set_color(c_white); draw_set_valign(fa_middle); draw_set_halign(fa_center); draw_set_font(fn_punkty); draw_text(470,39,"$"+string(global.pScore)); if instance_exists(par_player) { hpHUD = lerp(hpHUD,par_player.hp,.5); maxHpHUD = par_player.maxHp; with obj_player { var _offset; _offset = 0; draw_set_font(fnt_pwrup); draw_set_valign(fa_bottom); draw_set_halign(fa_center); draw_set_color(c_white); draw_texture_flush(); if pwrupSpd > 0 { draw_sprite_ext(spr_pwrup_speed,0,__guiW-26,29+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,29+35*_offset,string(ceil(pwrupSpd/room_speed))); _offset++; } if pwrupStr > 0 { draw_sprite_ext(spr_pwrup_strength,0,__guiW-26,35+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,35+35*_offset,string(ceil(pwrupStr/room_speed))); _offset++; } if pwrupJmp > 0 { draw_sprite_ext(spr_pwrup_jump,0,__guiW-26,28+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,28+35*_offset,string(ceil(pwrupJmp/room_speed))); _offset++; } } } else { hpHUD = lerp(hpHUD,0,.5); } draw_sprite_part(spr_healthbar,1,94,0,91/maxHpHUD*hpHUD,32,4,0); Tu rysunek jak to ma wyglądać..
  6. Jasiu o to caly kod obj_przejscie w Create GML nextRoom = roo_world1_2; unlockWorld = -1; show=-1; Alarm 0 GML show=-1 STEP GML if show = 0{ alarm[0]=60 show=1} Kolizja z graczem GML ///Koniec mapy wygrana if (global.watch = 5){ room_goto_transition(nextRoom,TRANS_RANDOM,10+irandom(30), choose(c_lime,c_yellow,c_white,c_black,c_gray)); } else { show =0 } if unlockWorld != -1 { ds_list_add(openWorlds,unlockWorld); } DRAW GML draw_self(); if show >= 0{ draw_set_color(c_white); draw_set_halign(fa_center); draw_text(x,y,"You do not have enough watches"); }
  7. No tak faktycznie powinno być else...ale to i tak nadal nie wyświetla tego napisu:/ w samym Draw GUI poprzedio wyświetlało,tylko był problem żeby ten napis przytwierdzić do obj_przejscie,bo fakt pokazywał się ale poruszał się ,kiedy ja graczem się poruszałem..A teraz w tym zwykłym draw to już nawet się napis nie wyświetla..
  8. Jasiu zrobiłem tak: w draw dałem GML draw_self(); draw_set_color( c_white ); draw_text(x,y-32,show); i teraz jest cyferka 0 nad obj_przejscie a jak podejdę do obj_przejscie,to zmienia się na cyferkę 1,więc kolizja jest,w czym innym musi być problem.
  9. Ok w takim razie pozostaje przy pierwotnej wersji dzięki Jasiu;)
  10. Jasiu ok tu wyżej rozdzielczość sprita obj_przejscie nie jest on wielki. 52x64 rozdzielczość czyli nie wielka w Orgin ma połowę czyli x26 y22 a tu cały kod obj_przejście CREATE GML nextRoom = roo_world1_2; unlockWorld = -1; show=-1; Alarm 0 GML show=-1 STEP GML if show=0{ alarm[0]=60 show=1} Kolizja z bohaterem GML ///Koniec mapy wygrana if (global.watch = 5){ room_goto_transition(nextRoom,TRANS_RANDOM,10+irandom(30), choose(c_lime,c_yellow,c_white,c_black,c_gray)); } { show =0 } if unlockWorld != -1 { ds_list_add(openWorlds,unlockWorld); } DRAW GML draw_self() if show>=0{ draw_set_color(c_white); draw_set_halign(fa_center); draw_text(x,y,"You do not have enough watches"); } Nie wyświetla mi tekstu przy najechaniu na obj_przejscie. Nie jest on zbyt duży więc tekst powinien być widoczny i stały nad tym obiektem przez te parę sekund.
  11. Ok podesle jak.do.kompa dojde. Jasiu rozumiem,ze chodzi ci o rozdzielczosc sprita do obj_przejscie;-)?
  12. Jasiu ok,wczrsniej mialem.osobno zrobiona zmienna global.coins wtedy bylo ok,ale szkoda,ze tego nie da sie zrobic w tej zmiennej global.pScore..Screena zapuszcze jak bede przy kompie;-)
  13. Cześć wszystkim. Może wyjaśnię o co mi chodzi.Mam obiekty,które dają punkty czyli jabłuszka i inne tego typu pierdoły,no i mam tez monety,które dają życia po zebraniu określonej liczby monet. No i wcześniej stworzyłem dwie zmienne jedna global.pScore a druga global.coins wiadomo,żeby oddzielić punkty od monet.No i teraz celowo usunąłem zmienna global.coins bo chciałem w global.pScore uzyskać ten efekt,ze jak zbieram inne elementy niż monety to pkt mi lecą,ale żyć za to nie dostaję,ale jak zbiorę monety to punkty mi lecą i za określoną liczbę zebranych monet np 100 bo tak ustawiłem dostanę życie.Sęk w tym,że teraz tak mam,że obojętnie,czy zbiorę jabłuszka,czy monety,to po określonej liczbie zebranych dostaje życia,a ja chce tylko życia dostać po zebraniu monet a nie jabłek. o to mój kod obj_game_controller w Create GML global.pScore = 0; w Draw GUI GML draw_text(470,39,"$"+string(global.pScore)); a tu obj_jablka Create GML image_speed = 0.15; STEP GML if place_meeting(x,y,obj_player){ instance_destroy(); global.pScore += 100; } a tu kod z obj_monet CREATE GML image_speed = 0.15; STEP GML ///monety zebranie 100sztuk doda 1 zycie bohaterowi if( global.pScore >= 100 ) { global.pScore -= 100; global.life += 1; } if place_meeting(x,y,obj_player){ instance_destroy(); global.pScore += 1; } Game Maker Studio Pro
  14. No i dupa ;) Jasiu co prawda teraz obj_przejscie już jest,ale jak nachodzę na niego napis żaden się nie pojawia;)
  15. Jasiu zrobiłem tak: wywaliłem DRAW GUI wstawiłem DRAW a w nim: GML if show>=0{ draw_set_halign(fa_center) draw_text(x,y,"You do not have enough watches"); } W STEP utworzonym dałem GML show=0{ alarm[0]=60 show=1} No i teraz nawet obj_przejście nie ma zniknął;) więc to nic nie daje;)
  16. Jasiu a nie zepsuje się cokolwiek jak tak zrobie,bo zobacz w draw gui jest to: GML if show=0{ alarm[0]=60 show=1} if show>=0{ draw_text(view_xview[0]+100,view_yview[0]+400,"You do not have enough watches") }
  17. Jasiu po poprawkach wszystko ładnie działa dziękuje;) a powiedz mi jak ustawić ten tekst,który się pojawia żeby on nie latał jak się poruszam bohaterem,tylko był na stałe ustawiony nad obj_przejście na te 2,3 sekundy?
  18. Jasiu i tak wywala błędy mase;) teraz mam tak w obj_przejscie DRAW GUI GML If show=0{ alarm[0]=90 Show=1} { if show>=0 draw_text(view_xview[0]+100,view_yview[0]+400,"nie ma zegarkow") } w Create GML show=-1; a Alarm0 GML show=-1 i w kolizji z graczem GML ///Koniec mapy wygrana if (global.watch = 5){ room_goto_transition(nextRoom,TRANS_RANDOM,10+irandom(30), choose(c_lime,c_yellow,c_white,c_black,c_gray)); } { show =0 } if unlockWorld != -1 { ds_list_add(openWorlds,unlockWorld); } no i nie działa;)
  19. Jasiek dałem tak: w obj_przejscie dalem tak w kolizji z graczem GML ///Koniec mapy wygrana if (global.watch = 5){ room_goto_transition(nextRoom,TRANS_RANDOM,10+irandom(30), choose(c_lime,c_yellow,c_white,c_black,c_gray)); } If distance_to_object (obj_player)<156{ Show=0}else{show=-1} if unlockWorld != -1 { ds_list_add(openWorlds,unlockWorld); } w Create dałem GML show=-1; w Alarm0 dałem GML If show=0{ alarm[0]=90 Show=1} w Draw GUI dałem GML If show=0{ alarm[0]=90 Show=1} { draw_text(view_xview[0]+100,view_yview[0]+400,"nie ma zegarkow") } No i coś nie działa...
  20. Dziękuje Jasiu no to jestem pod wrażeniem jak z telefonu to pisałeś zdolny chłopak z Ciebie;)
  21. Jasiek czyli to tak w obj_przejście stworzyć DRAW a w nim GML draw_text( x, y, brak odpowiedniej ilosci watchow do opuszczenia planszy) draw_set_colour(c_white); draw_rectangle(100, 100, 300, 200, true); GML alarm0=true;
×
×
  • Dodaj nową pozycję...