kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 Dobra, wiem to się nadpisuje. Zrób na początku STEP GML var stopped; stopped=0; Zamiast GML hspd=0; daj GML stopped=1 I na końcu STEP GML if (stopped) hspd=0 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 Dzięki;) zaraz sprawdzę;) to chyba w create ma być GML var stopped; stopped=0; dobra to tak to daje teraz: GML if distance_to_object(obj_player)<90 { var stopped; stopped=0; a to już nie wiem,w którym dokładnie miejscu mam umieścić GML if (stopped) hspd=0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 Nie nie, GML var stopped; stopped=0; Na samym początku eventu step GML if (stopped) hspd=0; Na samym końcu Tam po GML if distance_to_object(obj_player)<90 { ma być GML stopped=1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 kt117 zrobiłem dokładnie tak;) step wroga GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; if (stopped) hspd=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } 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_wall)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_wall ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } Bez zmian ,dalej dziad łazi i strzela zamiast stać i strzelać;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 Tak ma być GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } 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_wall)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_wall ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 Dziękuje teraz działa jak należy;) zatrzymuje się i strzela;) w końcu;) kt1117 mam jeszcze jeden mały problem,bo mam obiekty dziedziczące no i np mam obj par_wall i tu nie ma problemu na krawędzi wróg się obraca jak jest też przeszkoda,która z tym dziedziczy też się obraca..natomiast już przy obiekcie par_solid mam problem..bo jak nałożę par_solid na daną scenerie to jak jest krawędź to on dalej idzie,a jak jest przeszkoda z par_solid to się nie obraca tylko dostaje trzęsiawki.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 Zobacz teraz: GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } 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_solid)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_wall ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; par_wall powinien dziedziczyć po par_solid Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 kt1117 no właśnie teraz,to wróg zobaczy przeszkodę dziedziczącą z par_solid no to stoi w miejscu nie obraca się,może się wstydzi;) no nie działa to. tylko z par_wall obiekty działają na krawędziach ładnie się obraca jak widzi krawędź i przeszkodę dziedziczącą z par_wall Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 Ja tam w jednym miejscu kodu zamieniłem par_wall na par_solid, to powinno robić różnicę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 kt1117 no właśnie tak zrobiłem podmieniłem kod,i teraz jest tak,że wróg ucieka sobie szybko w drugą stronę i jak napotka przeszkodę,to stoi w miejscu,ja do niego podejde strzela..śmiesznie to wygląda,wtedy się nie obracał ale szedł jakby w miejscu,a teraz to tak jest,że idzie szybko w danym kierunku nawet jak mnie nie widzi napotyka przeszkodę z par_solid,i nie zawraca,ale odwraca się do niej plecami i sobie stoi wróg;) to jest ta różnica. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 18 Sierpnia 2015 Udostępnij Opublikowano 18 Sierpnia 2015 OK, nie wszędzie podmieniłem GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } 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_solid)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_solid ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_solid) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Sierpnia 2015 Autor Udostępnij Opublikowano 18 Sierpnia 2015 Podmieniłem...teraz to idzie wróg tylko w jedną stronę w lewo i tym razem próbuje w miejscu iść dalej w lewo jak widzi przeszkodę z par_solid..no nic to nie dało modyfikacja kodu... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 19 Sierpnia 2015 Udostępnij Opublikowano 19 Sierpnia 2015 Ty nawet nie masz pojęcia co zmieniasz ani jak to działa, jaki jest sens, żebyś cokolwiek zmieniał? Naucz się a nie męczysz gmclan. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Sierpnia 2015 Filar Społeczności Udostępnij Opublikowano 19 Sierpnia 2015 Ty nawet nie masz pojęcia co zmieniasz ani jak to działa, jaki jest sens, żebyś cokolwiek zmieniał? Naucz się a nie męczysz gmclan. co tylko świadczy, że dawanie komuś gotowych rozwiązań w postaci kodu niczego nie uczy, typ po 100 tematach i tysiącu postów podajacych mu gotowy kod nie rozumie NIC, w ogóle nie ogarnia na czym polega programowanie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Sierpnia 2015 Autor Udostępnij Opublikowano 19 Sierpnia 2015 I am vader , ANtY nikt was o zdanie nie prosił! załóżcie sobie osobne forum na jakiekolwiek uwagi i krytyki...tam możecie wylewać swoje żale i pretensje do użytkowników tego forum. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Sierpnia 2015 Udostępnij Opublikowano 19 Sierpnia 2015 To nie są bezpodstawne pretensje i obrażanie. Obaj dali bardzo ważną radę. Większość twoich problemów tutaj nie dotyczyła nawet programowania, a źle dobranych argumentów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 19 Sierpnia 2015 Udostępnij Opublikowano 19 Sierpnia 2015 Cygnus, raz Ci pomoglem i juz leciales na PW pytac sie mnie o rozwiazanie. Jestem suerem ktory jak mial blad siedzial nad nim 3 dni albo i tydzien aby samemu go rozwiazac. I rozumiem wszystkie co pisze, jestem w stanie zaprogramowac wszystko czego mi trzeba. Ty natomiast powinienes dostac medal za najwiecej zalozonych tematow w dziale pytan ostatniej dekady. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Sierpnia 2015 Autor Udostępnij Opublikowano 19 Sierpnia 2015 To trzeba jeszcze jeden założyć temat...już ci Vader pisałem,gdzie z żalami i pretensjami masz składać swoją petycje... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Sierpnia 2015 Filar Społeczności Udostępnij Opublikowano 19 Sierpnia 2015 ok, to my wszyscy przejdziemy na nowe forum do krytyki, a ty sobie tu sam zostań, powodzenia w uzyskiwaniu dalszej pomocy! :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Sierpnia 2015 Autor Udostępnij Opublikowano 19 Sierpnia 2015 Weź od razu krzyż na drogę ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 20 Sierpnia 2015 Filar Społeczności Udostępnij Opublikowano 20 Sierpnia 2015 Dzięki piękne :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 20 Sierpnia 2015 Udostępnij Opublikowano 20 Sierpnia 2015 Okej to tak dla zabawy mam rozpiskę: Tematy w 2015: 22 Pierwszy temat w 2015: 19.06.2015 To daje 22 tematy w 2 miesiące i 1 dzień. To daje 1 temat na 3 dni. Okej ale lecimy dalej Użytkownicy którzy Ci próbowali pomóc w tych 21(odjalem ten temat) tematach: (sortowanie po ilosci postow) Użytkownik[ilość unikalnych tematów / Ilość postów] jasiek_209[5/32], Threef[8/29], kt1117[6/22], I am Lord[6/17], ANtY[6/17], Boad[7/14], Mateusz Nejman[3/8], Sutikku[5/7], Gnysek[5/6], I am Vader[3/4], Uzjel[3/3], MaxGaming[2/2], bLaze[2/2], Orcadiusz[1/2], Arathar[1/2], PatrykPlayingPOLSKA[1/2], Explosivo[1/2], Ignatus[1/1], Wkurzyłeś dwóch najbardziej pomocnych użytkowników(Threef i ANty), posty jaśka są bardzo mało pomocne, I am Lord pomogl w pierwsych 6 tematach, a potem przestal Ci odpisywac, wiec na jego pomoc bym nie liczyl i to tylko kwestia czasu zanim kt1117 znudzi sie mowienie do sciany. Lada dzien nikt Ci nie pomoze. Posluchaj nas i zacznij sie uczyc poki jeszcze ktos Ci chce dawac rady. A i masz tak epicką historię double i triple postów, że gdyby jakiemuś modowi chciało się wstawiać warny, miałbyś jakieś 150%, więc byłoby dużo banów. Ogarnij się. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 1 Września 2015 Autor Udostępnij Opublikowano 1 Września 2015 Dobrze..naprawdę nie mam zamiaru z nikim się kłócić.Jeśli kogoś zdenerwowałem,to przepraszam nie miałem złych zamiarów. Słuchajcie może ktoś miał ten sam problem co Ja.. wróg ładnie obraca się i wykrywa krawędź na planszach zbudowanych z tilesetów,natomiast mam dalej problem z obracaniem się wroga i wykrywaniem krawędzi na planszach zbudowanych z ręcznie malowanych scenerii. No i teraz tak: par_wall par_wall dla niego parentem,czyli rodzicem jest par_solid par_wall ma mnóstwo dzieci,czyli wszystkie w sobie tilesety,które w momencie jak dodamy do nich rodzica par_wall stają się solidami widzialnymi po których można chodzić par_solid par_solid nie ma rodzica jego dziecko to par_wall depth mam ustawione na nim na -100 Tu visible jest odznaczone,bo to obiekt niewidzialny...który służy na nanoszenie go na daną narysowaną scenerię.. Co zrobić,żeby na sceneriach,gdzie są rysowane całe ręcznie i nanoszone na nich par_solid wróg normalnie się obracał i wykrywał krawędzie przeszkody...Dokładnie żeby tak samo się zachowywał jak w sceneriach przy par_wall. a tu jeszcze raz kod wroga jego STEP przy par_wall działa idealnie,ale przy par_solid nie obraca się jak widzi przeszkodę,dostaję trzęsiawki ,a jak widzi krawędź to schodzi niżej:/ problem jest prawdopodobnie w STEPIE wroga,bo jeśli wywaliłem część kodu AI to wróg obracał się widząc przeszkodę dziedziczącą z par_solid,no,ale tylko się obracał nic więcej nie robił..a mi chodzi o takie same zachowanie jak przy par_wall STEP wroga GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } 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_wall)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu przeszkoda par_wall if place_meeting(x+5,y,par_wall) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } //naprawiamy bugujacego sie wroga przy zawracaniu obiekty niewidzialne if place_meeting(x+5,y,par_solid_ghost) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_solid_ghost) && image_xscale = -1 { image_xscale = 1; } //jak to wyżej wywalę tą część kodu,to powraca na obiekcie par_solid zawracanie widząc przeszkodę ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; // czasowy respawn wrogow troche pomeczyles sie ale dziala jak trzeba :) if (dead == true) { //obj_spawn.dead = true; //respawn zabitego wroga jak nie bedzie dzialac to wtedy dead=true i wpisac instance_create(x,y,obj_spawn) instance_create(x,y,obj_spawn_dino); } Proszę o pomoc.. Może przedstawie to na prostym obrazku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kt1117 Opublikowano 1 Września 2015 Udostępnij Opublikowano 1 Września 2015 Tam masz w kodzie par_solid_ghost, wydaje mi się że powinno być par_solid po prostu. Ogólnie nie rozumiem dlaczego wszędzie nie masz par_solid przy tych kolizjach, przecież wszystko po tym dziedziczy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 1 Września 2015 Autor Udostępnij Opublikowano 1 Września 2015 Tam masz w kodzie par_solid_ghost, wydaje mi się że powinno być par_solid po prostu. Ogólnie nie rozumiem dlaczego wszędzie nie masz par_solid przy tych kolizjach, przecież wszystko po tym dziedziczy. zaraz dam wszędzie par_solid chociaż nie wiem,czy to akurat pomoże... dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 1 Września 2015 Autor Udostępnij Opublikowano 1 Września 2015 Tam masz w kodzie par_solid_ghost, wydaje mi się że powinno być par_solid po prostu. Ogólnie nie rozumiem dlaczego wszędzie nie masz par_solid przy tych kolizjach, przecież wszystko po tym dziedziczy. A,więc tak dałem wszędzie par_solid zamiast par_wall teoretycznie powinno już być w porządku... Ale teraz wróg podąża bardzo szybko w prawo,i jak napotka przeszkodę mur na scenerii,który ma nałożony obiekt niewidzialny par_solid to nie obraca się tylko zatrzymuje się i chodzi w miejscu w prawo,a jak ja się bohaterem wtedy zbliżę do niego,to odwróci się w moja stronę zacznie strzelać,tak to dziwnie wygląda... Dziwne to jest ponieważ rodzicem par_wall jest par_solid i on po nim wszystko dziedziczy... wygląda na to,że na par_solid nie działa funkcja if place_free albo coś jest nie tak...bo nie wykrywa krawędzi ani przeszkody po której ma zmienić wróg kierunek ruchu na przeciwny... kod wroga wygląda teraz tak po zmianach: step GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; 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; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; strzal = 0; alarm[0]=room_speed*0.2 } } 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_solid)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu przeszkoda par_wall if place_meeting(x+5,y,par_solid) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_solid) && image_xscale = -1 { image_xscale = 1; } ------------------------------------------------------------------------------------------------------------------------ // to niżej jak zostanie ta część kodu,a górną chwilowo wyrzucę czyli AI,wróg zaczyna normalnie się obracać widziąc przeszkodę par_solid no,ale AI wtedy nie działa wroga.. ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; // czasowy respawn wrogow troche pomeczyles sie ale dziala jak trzeba :) if (dead == true) { //obj_spawn.dead = true; //respawn zabitego wroga jak nie bedzie dzialac to wtedy dead=true i wpisac instance_create(x,y,obj_spawn) instance_create(x,y,obj_spawn_dino); } O dziwo jak wywalę tą nową część kodu z AI to wróg zmienia kierunek widząc przeszkodę z par_solid dziwna sytuacja,no,ale wtedy AI wroga nie działa:/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
3r3se7ven Opublikowano 1 Września 2015 Udostępnij Opublikowano 1 Września 2015 Siekanka na całego. Na razie jeszcze można z tego coś wyrozumieć, a jak dodasz obsługę jeszcze 50 zachowań wroga? Zacznij już porządki w kodzie, oddzielnie STOMwroga, oddzielnie STOM wyświetlania wroga, oddzielnie obsługę zmiany stanu wroga względem wejść ze środowiska. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 1 Września 2015 Autor Udostępnij Opublikowano 1 Września 2015 Siekanka na całego. Na razie jeszcze można z tego coś wyrozumieć, a jak dodasz obsługę jeszcze 50 zachowań wroga? Zacznij już porządki w kodzie, oddzielnie STOMwroga, oddzielnie STOM wyświetlania wroga, oddzielnie obsługę zmiany stanu wroga względem wejść ze środowiska. Właśnie robię powoli porządki w kodzie..już nic więcej do wroga nie będę dodawał w końcu to platformówka. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
3r3se7ven Opublikowano 1 Września 2015 Udostępnij Opublikowano 1 Września 2015 Właśnie robię powoli porządki w kodzie..już nic więcej do wroga nie będę dodawał w końcu to platformówka. A czemu nie dodawać? Nie ma co sobie żałować drzewa zachowań i podstępności u wroga. Po prostu podziel to na sekcje odpowiedzialne za stan, za interakcję, za grafikę i za decyzje W step event masz możliwość dodania wielu kartek z kodem, można porozdzielać je żółtymi wykrzyknikami z opisami :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 1 Września 2015 Autor Udostępnij Opublikowano 1 Września 2015 A czemu nie dodawać? Nie ma co sobie żałować drzewa zachowań i podstępności u wroga. Po prostu podziel to na sekcje odpowiedzialne za stan, za interakcję, za grafikę i za decyzje W step event masz możliwość dodania wielu kartek z kodem, można porozdzielać je żółtymi wykrzyknikami z opisami :) Tak a potem strasznie obciąży mi to grę;) 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ę