-
Postów
320 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
1
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez pankracy
-
Kaktusie jak dam warunki odwrotnie plus Twoje rozwiązane, to wiesz mi nic się nie dzieje..wróg wcale nie reaguje na gracza..tylko sobie jeździ nie strzela jak mam w taki sposób jak niżej,to wróg wykrywa gracza...zatrzymuje się i strzela.. GML if distance_to_object(obj_player) <=80 { if(abs(y-obj_player.y)<32) && (obj_player.y>=y) //if(y-obj_player.y<32 && obj_player.y<=y) { speed=0; if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; //tu reszta kodu
-
W porządku;) Ale jednak Kaktusie musi być te rozwiązanie od Sutikku,bo te od Ciebie nie działa prawidłowo,tzn wróg całkowicie już przestaje nas widzieć i strzelać.. No nic ważne,że działa jeszcze raz dzięki;) GML if distance_to_object(obj_player) <=80 { if(abs(y-obj_player.y)<32) && (obj_player.y>=y) } reszta kodu { Jeszcze ostatnie pytanie mam,bo próbuje w kodzie ustawić zmiane sprita na sprita ataku wroga jak zbliży się mój bohater do niego..to wróg zmieni sprita na sprita ataku i zacznie strzelać,a jak się oddale poza jego dystans,to powróci do pierwotnego sprita.. step wroga GML if distance_to_object(obj_player) <=80 { if(abs(y-obj_player.y)<32) && (obj_player.y>=y) //if(y-obj_player.y<32 && obj_player.y<=y) { sprite_index = spr_czolgista_atakuje; } else { sprite_index = spr_czolgista; speed=0; if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; if ( strzal ) { var i; var miejsce_x; i = instance_create( x+(image_xscale*25), y-15, obj_laser) i.speed = 7; i.hspeed=image_xscale*7; strzal = 0; alarm[0]=room_speed*1.5 } } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_podloze)) x+=image_xscale*5; speed=4; }
-
Czy to tak przypadkiem nie ma być chłopaki? Kaktus Twoje rozwiązanie nie działa prawidłowo. GML if distance_to_object(obj_player) <=80 { if(abs(y-obj_player.y)<32) && (obj_player.y>=y) } reszta kodu {
-
Serdeczne dzięki chłopaki za ładny opis;) czyli zamierzony cel osiągnę w taki sposób GML if distance_to_object(obj_player) <=80 { if(abs(y-obj_player.y)<32) if(obj_player.y>=y) { i tu reszta kodu
-
Dzięki Sutikku..analizuje,tylko w błąd mnie wprowadziło użycie y-15 zamiast x,bo przecież lufa od mojego czołgu nie strzela góra dół,tylko lewo prawo;) teraz jest idealnie. Mam jeszcze jedno pytanie..bo walczę z ustawieniem kątów,tzn chodzi mi,że jak jestem np na wyższej platformie i pode mną jest ten wróg czołgista..i on zaczyna strzelać mimo,że nie widzi mnie.. Wolałbym,żeby strzelał jak znajdę się w jego zasięgu w pozycji X Nie wiem,czy użyć colission_line czy innej funkcji. Po prostu niech wróg mnie wykrywa dopiero jak będę w pozycji x a nie y
-
a więc tak to zrobiłem... dodałem tak: GML var miejsce_x; var miejsce_x=x+(image_xscale*15); teraz to tak wygląda,ale nadal jak w lewo strzela to nie z lufy laser. GML var stopped; stopped=0; //image_angle = direction; if distance_to_object(obj_player) <=80 { //stopped=1; speed=0; if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; //if( abs(obj_player.y - y) < 80 && abs(obj_player.y - y) < 80) if ( strzal ) { var i; var miejsce_x; var miejsce_x=x+(image_xscale*15); i = instance_create( x+25, y-15, obj_laser) i.speed = 7; i.hspeed=image_xscale*7; strzal = 0; alarm[0]=room_speed*1.5 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_podloze)) x+=image_xscale*5; speed=4; } if place_free(x,y+1) {gravity = 0.5} else {gravity = 0} if at=1 { at=2 speed=4 } if at=2 { if hspeed<0 { image_xscale = -1; if !place_meeting(x-30,y+10,par_podloze ) speed*=-1 else if place_meeting(x-1,y,par_podloze ) speed*=-1 st=1 } else if hspeed>0 { image_xscale = 1; if !place_meeting(x+30,y+10,par_podloze ) speed*=-1 else if place_meeting(x+1,y,par_podloze ) speed*=-1 st=2 } } //Obrazenia wroga if global.zegarObrazenWroga > 0 { visible = !visible; global.zegarObrazenWroga -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); dead = true; //wywolujemy alarm gdy wrog jest martwy //tworzy napis i losowa ilosc punktow nad wrogiem global.pScore+=pointvalue z = instance_create(x,y-10,obj_floating_txt); z.txt = "$" + string(pointvalue); z.yspeed = -4; with instance_create(x,y,obj_entity_die) with instance_create(x,y,obj_czolgista_ginie) { image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; audio_play_sound(dzwiek_wrog_ginie, 1, false); //odtwarzamy dzwiek przy smierci wroga } } if (stopped) hspd=0; // czasowy wskrzeszanie wroga if (dead == true) { instance_create(x,y,obj_spawn_czolgista); }
-
GML i = instance_create( x+25, y-15*image_xscale, obj_laserek ) o to chodziło? ale to nic nie daje..zmiana y+15 również..i z dziwnej strony wtedy pocisk leci...
-
Cześć wszystkim.. mój wróg jak strzela,to pocisk ,który wydobywa się z prawej strony idealnie wydobywa się z lufy wroga,natomiast ten z lewej już nie... Próbuje to ustawić,ale jak ustawiam,to całkowicie mi wtedy wróg się zatrzymuje i dalej źle strzela.. to mam ustawione instance_create( x+25, y-15, obj_laser) ale nie wiem jak ustawić instance_create( x-25, y+15, obj_laser) wtedy idealnie zarówno z prawej jak i z lewej strony strzelałby pocisk z lufy wroga.. tu kod wroga step GML var stopped; stopped=0; //image_angle = direction; if distance_to_object(obj_player) <=80 { //stopped=1; speed=0; //image_speed=0 if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; //if( abs(obj_player.y - y) < 80 && abs(obj_player.y - y) < 80) if ( strzal ) { var i; i = instance_create( x+25, y-15, obj_laser) i.speed = 7; i.hspeed=image_xscale*7; strzal = 0; alarm[0]=room_speed*1.5 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_platforma)) x+=image_xscale*5; speed=4; } if place_free(x,y+1) {gravity = 0.5} else {gravity = 0} if at=1 { at=2 speed=4 } if at=2 { if hspeed<0 { image_xscale = -1; if !place_meeting(x-30,y+10,par_platforma ) speed*=-1 else if place_meeting(x-1,y,par_platforma ) speed*=-1 st=1 } else if hspeed>0 { image_xscale = 1; if !place_meeting(x+30,y+10,par_platforma ) speed*=-1 else if place_meeting(x+1,y,par_platforma ) speed*=-1 st=2 } } //Obrazenia wroga if global.zegarObrazenWroga > 0 { visible = !visible; global.zegarObrazenWroga -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); dead = true; //wywolujemy alarm gdy wrog jest martwy //tworzy napis i losowa ilosc punktow nad wrogiem global.pScore+=pointvalue z = instance_create(x,y-10,obj_floating_txt); z.txt = "$" + string(pointvalue); z.yspeed = -4; with instance_create(x,y,obj_entity_die) with instance_create(x,y,obj_czolgista_ginie) { image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; audio_play_sound(dzwiek_wrog_ginie, 1, false); } if (stopped) hspd=0; // czasowe wskrzeszenie wroga if (dead == true) { instance_create(x,y,obj_spawn_czolgista); }
-
Ok z ini sobie poradzę,ale powiedzcie mi...bo w gm 8.1 działa idealnie ten przykład od gnyska natomiast już w studio próbuje zamiast variable_global_exists('gamepad_mode') przypisać zmienną gamepad_mode tylko muszę źle to robić,bo kiedy podpiąłem gamepad..zmienia mi przyciski,ale to nic nie daje,bo jak już zaczynam grać,to gamepad nie reaguje... a w gm 8.1 działa kod idealnie.i gamepad też ładnie działa.. tutaj cały kod gamepada w create obj_menu GML kursor=0; if !variable_global_exists('gamepad_mode') { global.gamepad_mode=false; //tutaj gamepad wylaczony global.gamepad_a=5; //przycisk A global.gamepad_d=6; //przycisk D global.gamepad_space=3; //przycisk Spacja //zywamy domyslnych z pada czyli x-axis,strzalek nie definiujemy } draw GML draw_set_color(c_white); draw_set_alpha(0.3); draw_rectangle(20,100+(kursor*30),200,120+(kursor*30),false); draw_set_color(c_black); draw_set_alpha(1); draw_text(20,100,'>> Graj'); draw_line(20,100,200,100); draw_line(20,120,200,120); draw_text(20,130,'>> Konfiguruj Pada'); draw_line(20,130,200,130); draw_line(20,150,200,150); draw_sprite(spr_gamepad,global.gamepad_mode,20,20); if global.gamepad_mode==false { draw_set_color(c_blue); draw_set_alpha(1); draw_text(80,28,'Pad nieaktywny'); } press ENTER GML if kursor=0 { instance_create(0,0,obj_pad_sim); // Symulujemy nacisniecie klawiszy room_goto_next(); } else { instance_create(0,0,obj_pad_cfg); instance_destroy(); } press UP GML kursor=!kursor; press DOWN GML kursor=!kursor; obj_pad_sim z zaznaczonym persistent create GML // Zaznaczamy PERSISTENT //ustawiamy,ze na razie zaden klawisz nie jest wcisniety is_a=false; is_d=false; is_space=false; is_up=false; is_down=false; is_left=false; is_right=false; step GML if global.gamepad_mode=true { //A if joystick_check_button(1,global.gamepad_a) { is_a=true; keyboard_key_press(ord('A')); } else if is_a=true { is_a=false; keyboard_key_release(ord('A')); } //D if joystick_check_button(1,global.gamepad_d) { is_d=true; keyboard_key_press(ord('D')); } else if is_d=true { is_d=false; keyboard_key_release(ord('D')); } //SPACJA if joystick_check_button(1,global.gamepad_space) { is_space=true; keyboard_key_press(vk_space); } else if is_space=true { is_space=false; keyboard_key_release(vk_space); } //up if joystick_direction(1)==vk_numpad8 { is_up=true; keyboard_key_press(vk_up); } else if is_up=true and joystick_direction(1)<>vk_numpad7 and joystick_direction(1)<>vk_numpad9 { is_up=false; keyboard_key_release(vk_up); } //down if joystick_direction(1)==vk_numpad2 { is_down=true; keyboard_key_press(vk_down); } else if is_down=true and joystick_direction(1)<>vk_numpad1 and joystick_direction(1)<>vk_numpad3 { is_down=false; keyboard_key_release(vk_down); } //left if joystick_direction(1)==vk_numpad4 { is_left=true; keyboard_key_press(vk_left); } else if is_left=true and joystick_direction(1)<>vk_numpad7 and joystick_direction(1)<>vk_numpad1 { is_left=false; keyboard_key_release(vk_left); } //right if joystick_direction(1)==vk_numpad6 { is_right=true; keyboard_key_press(vk_right); } else if is_right=true and joystick_direction(1)<>vk_numpad9 and joystick_direction(1)<>vk_numpad3 { is_right=false; keyboard_key_release(vk_right); } //8 axis } draw GML draw_sprite_ext(spr_gamepad,0,0,0,1,1, direction,c_white,0.2); tam jeszcze jest jeden obiekt,ale on nie ma takiego już znaczenia jak te tu wyżej...
-
Dzięki ,czyli zapis do ini;) coś jak save;) ok no dobra moja metoda lipna
-
Dokładnie chce osiągnąć żeby gamepad jak jest raz ustawiony,to żeby tak zostało Kaktusie
-
Cześć wszystkim powiedzcie mi jakiej innej funkcji użyć bo variable_global_exists nie działa w game maker studio creater GML kursor=0; if !variable_global_exists('gamepad_mode') { global.gamepad_mode=false; //gamepad jest wylaczony global.gamepad_a=5; //klawisz A global.gamepad_d=6; //klawisz D global.gamepad_space=3; //klawisz Spacja }
-
No kurcze wycentrowałem sprita gamoń ze mnie;) dzięki wszystko jest dobrze;) a ja już myślałem,że coś popierdzieliłem w tym draw;) Kaktus ,Threef dziękuje chłopaki;)
-
Ok faktycznie po dopisaniu x+view)xview[0] wszystko jest widoczne mam tak w draw tym razem dodałem,ale powiedzcie mi...dlaczego jest tak,że jak wskaźnik tlenu mi się zmniejsza,to zamiast z jednej strony,czyli z prawej się zmniejszać,to on się z dwóch stron zmniejsza taki efekt zwężania.. GML if tlen<10 draw_sprite_ext(spr_tlen,1,view_xview+150,view_yview+120,tlen/10,1,0,image_blend,1);
-
Działa tak jak wspominałeś miałem w Draw,a wystarczyło wstawić do Draw gui dzięki jeszcze bardzo za pomoc;)
-
Tak Kaktus mam w draw bohatera,no fakt nie trzeba pisać obj_player ale teraz nic nici wyświetla amba brak paska ;) GML if tlen<10 draw_sprite_ext(spr_tlen,0,2,2,tlen/10,1,0,image_blend,1);
-
Wystarczy,żeby mi tylko skracał w zależności od tlenu..mam jednego właśnie sprita do tlenu... o wymiarach 208x33 Kurcze...jak ustawić tego sprita tlenu żeby nie zapierdzielał jak głupi,tylko powoli tlen ubywał a,i nie był tak rozciągnięty ten pasek
-
No działa dzięki;) tylko nie wiem,czemu mi sprita tlenu rozciąga:/ może zamiast draw_sprite_ext użyć draw_sprite_part??
-
No właśnie to nic nie pomaga,pasek się wcale nie pojawia;) step bohatera GML //nabieranie powietrza if tlen<10 {if distance_to_object(obj_woda)>1 draw_sprite_ext(spr_tlen,0,2,2,obj_player.tlen*10,1,0,image_blend,1); {tlen+=0.2}} //jesli nie ma powietrza energia ucieka i bohater potem traci zycie if tlen<0.1 {global.hp-=0.2} if global.hp<0 { global.life -= 1; } On się pojawi jak wrzucę go do drąw gui,ale chce żeby się tylko i wyłącznie pokazywał jak jestem wyłącznie w wodzie...
-
Cześć wszystkim skorzystałem z przykładu z forum...A dokładnie kiedy wchodzę do wody ubywa mi tlen,jak tlen osiągnie wartość zerową,to ubywa mi energia..jak energia osiągnie wartość zerową tracę życie.. Ok brzmi prosto,ale problem w tym,że chciałbym aby pasek tlenu pojawiał się dopiero,kiedy znajdę się bohaterem w wodzie,a nie żeby był non stop..i teraz kwestia,czy lepiej użyć draw_sprite_ext? czy może draw_sprite_part? Ewentualnie jak idealnie nanieść pasek tlenu w miejscu paska energii bohatera? ale tylko,żeby pokazywał się ja jestem w wodzie,a nie non stop.. niżej kod mojego tlenu w wodzie.. w create bohatera dodałem zmienną GML tlen=10;//poczatkowa ilosc tlenu w stepie bohatera GML //Zanurzamy sie if tlen<10 {if distance_to_object(obj_woda)>1 {tlen+=0.2}} //jesli nie ma tlenu energia ucieka i bohater potem traci zycie if tlen<0.1 {global.hp-=0.2} if global.hp<0 { global.life -= 1; } i teraz w draw gui ten pasek tlenu GML draw_sprite_ext(spr_tlen,0,2,2,obj_player.tlen*10,1,0,image_blend,1)//rozsciagnal mi sie po calosci pasek tlenu draw_sprite_part(spr_hp_bar,1,1,0,180/maxHpHUD*hpHUD,130,90,14);//to akurat pasek hp energi bohatera draw_set_color(c_white); tu kolizja obj wody z graczem GML if tlen>0 {tlen-=0.1}
-
Grafika wektorowa- bezstratny obsługujłcy format
pankracy odpowiedział(a) na pankracy temat w Pytania początkujących
Serdeczne dzięki Threef -
Grafika wektorowa- bezstratny obsługujłcy format
pankracy opublikował(a) temat w Pytania początkujących
Cześć wszystkim Mam pytanie... Tworzymy grafike wektorową powiedzcie mi jaki najlepszy bezstratny zapis wybrać żeby gms go obsłużył? -
Ja miałem to samo kiedyś... jak wielkie masz roomy?
-
dziwny problem ze strzelającym przeciwnikiem.
pankracy odpowiedział(a) na pankracy temat w Pytania początkujących
Cześć chłopaki Powiedzcie mi,gdzie popełniłem błąd??lub poprawcie mnie ,bo ciężko mi te kąty ustawić.. głównie chodzi mi o to,że: 1.Wróg dopiero ma mnie zobaczyć zatrzymać się i strzelać jak znajdę się w jego zasięgu,a dokładnie na jego płaszczyźnie platformie po której chodzi wróg,a nie płaszczyźnie platformie wyżej i niżej.. obecnie jest tak,że no strzela nawet jak jestem wyżej na platformie,a on jest niżej,ale wykrywa sam dystans i zatrzymuje się i strzela..co jest głupie.. 2.Kolejna sprawa jak zrobić łatwiejszy zapis niż ja mam obracania się wroga względem mojego bohatera? image_xscale 1 i -1 GML if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; 3.Ustawiłem sobie idealnie pocisk wroga,który wychodzi z jego lufy,no i jest dobrze jeśli sprite wroga strzela do mnie w prawo,natomiast jak znajdę się po lewej Jego stronie i zacznie do mnie strzelać w lewo,to ten pocisk już nie wylatuje z lufy,tylko zza lufy...jak to ustawić? czy to coś z direction?? 4.Zmiana sprita kiedy mnie zobaczy i będzie strzelał,a potem powrót do poprzedniego sprita wroga jaki miał wcześniej...co prawda ustawiłem speed=0; ale to nie ten efekt..jak dam tam zmianę sprite image_index=sprite ataku; no to zmieni sprita,ale potem już nie powróci do wcześniejszego sprita jak oddale się na odległość,która jest niewidoczna już dla wroga tutaj step mojego wroga... GML var stopped; stopped=0; //image_angle = direction; if distance_to_object(obj_player) <=80 { speed=0; //tu sie zatrzymuje jak nas zobaczy if (obj_player.x>x) && (obj_player.y>y) image_xscale=1; else if (obj_player.x<x) && (obj_player.y<y) image_xscale=-1; //if( abs(obj_player.y - y) < 80 && abs(obj_player.y - y) < 80) //tu nie moge ustawic tych katow widzenia wroga if ( strzal ) { var i; i = instance_create( x+25, y-15, obj_pocisk) i.speed = 7; i.hspeed=image_xscale*7; strzal = 0; alarm[0]=room_speed*1.5 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_podloze)) x+=image_xscale*5; speed=4; } if place_free(x,y+1) {gravity = 0.5} else {gravity = 0} if t=1 { t=2 speed=4 } if t=2 { if hspeed<0 { image_xscale = -1; if !place_meeting(x-30,y+10,par_podloze ) speed*=-1 else if place_meeting(x-1,y,par_podloze ) speed*=-1 st=1 } else if hspeed>0 { image_xscale = 1; if !place_meeting(x+30,y+10,par_podloze ) speed*=-1 else if place_meeting(x+1,y,par_podloze ) speed*=-1 st=2 } } //Obrazenia wroga if zegarobrazen > 0 { visible = !visible; zegarobrazen -= 1; } else { visible = true; } //wrog ginie if hp <= 0 { instance_destroy(); if (stopped) hspd=0; } create wroga GML ///Ustawienia event_inherited(); strzal = 1; hp = 10; zegarobrazen = 0; t=1; st=1; //pozycje powrotu wroga po restarcie mapy start_x = x; start_y = y; Alarm 0 wroga GML strzal=1; Alarm 1 wroga GML image_xscale*=-1; -
Lodowy pocisk na spricie bohatera
pankracy odpowiedział(a) na pankracy temat w Pytania początkujących
Dzięki Sutikku za radę;) już wiem jak to ustawić;)