Skocz do zawartości

pankracy

Użytkownicy
  • Postów

    320
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez pankracy

  1. 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
  2. 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; }
  3. 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 {
  4. 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
  5. 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
  6. 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); }
  7. 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...
  8. 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); }
  9. 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...
  10. Dzięki ,czyli zapis do ini;) coś jak save;) ok no dobra moja metoda lipna
  11. Dokładnie chce osiągnąć żeby gamepad jak jest raz ustawiony,to żeby tak zostało Kaktusie
  12. 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 }
  13. 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;)
  14. 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);
  15. Działa tak jak wspominałeś miałem w Draw,a wystarczyło wstawić do Draw gui dzięki jeszcze bardzo za pomoc;)
  16. 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);
  17. 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
  18. 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??
  19. 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...
  20. 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}
  21. Cześć wszystkim Mam pytanie... Tworzymy grafike wektorową powiedzcie mi jaki najlepszy bezstratny zapis wybrać żeby gms go obsłużył?
  22. Ja miałem to samo kiedyś... jak wielkie masz roomy?
  23. 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;
  24. Dzięki Sutikku za radę;) już wiem jak to ustawić;)
×
×
  • Dodaj nową pozycję...