Skocz do zawartości

Cygnus

Użytkownicy
  • Postów

    330
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Cygnus

  1. Zobacz robię tak jak Ty napisałeś i nadal nie wyświetla mi teraz obiektu i napisu obj_savegame Create GML checked = false; list = ds_list_create(); saveInfo=false; saveInfoTime=3; Alarm 0 GML saveInfo=false; Kolizja z bohaterem GML if( !checked ) { checked = true; game_save("Save.dat"); } if (!saveInfo) { saveInfo=true; alarm[0]=saveInfoTime*fps; } Draw GML if (saveInfo) { draw_text(20,20,"zapis gry został zakończony") }
  2. Kod pisze kolega,ale jest niedostępny przez dłuższy czas,ja zajmuje ja próbuje go trochę wesprzeć...Dobra mniejsza o to... No dobra..jak zrobić,żeby ten wróg widząc mojego bohatera np zatrzymał się i zaczął strzelać do niego w odpowiednim kierunku,jak go zobaczy z lewej strony,to stoi i strzela w lewo,a jak w prawej to stoi i strzela w prawo. w Stepie wroga dodałem to: GML if distance_to_object (obj_player)<80 { instance_create(x,y,obj_pociskArmata) } Ok teraz mnie jak zobaczy w odpowiedniej odległości zaczyna strzelać..ale tak dziwnie,bo jak idę w lewo,to on chodzi strzela nie zatrzymuje się i na odwal strzela raz z prawej raz z lewej nie ważne z której strony ja się znajduje.
  3. Cześć wszystkim,mam wroga,ale obecnie mój wróg tylko chodzi i nic więcej nie robi,chciałbym,żeby trochę zaczął myśleć: np jak zobaczy bohatera,to zacznie go trochę gonić,jak go zobaczy,to zacznie strzelać w jego kierunku, potrafi zatrzymać się na krawędzi jak dalej nie ma platformy losowe zachowanie,ot takie AI wroga (Game Maker Studio) tutaj kod mojego wroga: obj_enemy_bulwa CREATE GML ///Ustawienia event_inherited(); hp = 15; maxHp = 15; hurtClock = 0; skok = 0; image_xscale *= choose(1,-1); STEP GML ///Ruch wroga 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(); with instance_create(x,y,obj_entity_die) { sprite_index = sprWrogGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } Collision z obj_player GML ///Zgniecenie if other.y < y && other.vspd > 0 && other.hurtClock == 0 && skok==0{ skok+=1; hp-=10; other.vspd = -12; with instance_create(x,y,obj_entity_die) { sprite_index = sprWrogGinie; //dodatkowa animacja wroga kiedy ginie gdy sie na niego naskoczy image_xscale = other.image_xscale; hspd = other.hspd; vspd = other.vspd; } } else if other.y < y && other.vspd > 0 && other.hurtClock == 0 && skok==1{ other.vspd = -12; hp-=10; with instance_create(x,y,obj_entity_die) { sprite_index = sprWrogGinie; //dodatkowa animacja wroga kiedy ginie gdy sie na niego naskoczy image_xscale = other.image_xscale; hspd = other.hspd; vspd = other.vspd; } instance_destroy(); } A tu kod obj_player w kolizji z obj_enemy_bulwa GML ///Obrazenia jakie wrog zadaje Bohaterowi if !vspd > 0 && hurtClock == 0 && other.hurtClock == 0 && sign(x-other.x) == other.image_xscale { hp -= 15; hurtClock = room_speed; vspd = -8; hspd = sign(x-other.x)*16; } ///jakos to rozgryzlem tutaj wrog zabiera mi jedno zycie w momencie kontaktu z nim if( hp <= 0 ) { hp = 100; global.life -= 1; x = start_x; y = start_y; } if( global.life <= 0 ) { room_goto( rm_game_over ); //pokoj,gdzie ma sie akcja gry przeniesc po koncu gry }
  4. No właśnie twój sposób nie działa;) i nie wyświetla mi się info,że gra została zapisana a kod cały w obiekcie savegame mam taki: obj_savegame CREATE GML checked = false; list = ds_list_create(); Colission z obj_player GML if( !checked ) { checked = true; game_save("Save.dat"); } DRAW GML draw_self(); draw_set_color( c_white ); draw_text(x,y, "zapis gry został zakończony" );
  5. Walcze jeszcze z jedną rzeczą,a mianowicie z tym,że jak bohater najedzie na obj_savegame,to wyświetli się wiadomość,że zapis gry został zakończony robiłem przez kod w stepie wpisując msg = show_message_async("zapis gry został zakończony"); ale to nie ten efekt,bo wyskakuje fakt info,ale w postaci okienka,które trzeba kliknąć na OK żeby się zamknęło,no to zacząłem kombinować w DRAW w obiekcie savegame,ale nie wiem jak to zrobić draw_text(x, y, "zapis gry został zakończony"); ale to nic nie pomaga i nie wyświetla mi się napis w momencie najechania na obj_savegame. Jak to zrobić?
  6. Dobra zadziałało nawiasu nie dałem na końcu kodu;) dzięki Threef ,czyli wychodzi na to,że jak będzie problem z odczytem load game,to wystarczy tą linijkę dodać kodu i powinno zadziałać;) P.S nie pij młody już więcej tego niedobrego piwa;)
  7. Ktoś wie jak zrobić żeby tła poruszały się w momencie ruchu bohatera? Wcześniej mi tovdziałało,a teraz nie działa.
  8. No widzisz w tamtym przypadku pomogło,ale zobacz jak tu w STEPIE obj_164 wrzucę ten kod od Ciebie,to wszystko się spierdzieli,bo to jest ruchoma platforma,a nie statyczny obiekt.
  9. Tak tez myslalem,jak wczesniej wspominales,ze z kolejnym obiektem moze byc problem,teraz to wyswietla taki komunikat obj_164 czyli ruchoma platforma GML ERROR in action number 1 of Step Event0 for object object164: Data structure with index does not exist. at gml_Object_object164_StepNormalEvent_1 (line 58) - for (i=0;i<ds_list_size(notOnMeList);i++) { a to cały kod obj_164 create GML hspd = 0; vspd = 0; onMeList = ds_list_create(); notOnMeList = ds_list_create(); entity_collision = false; Destroy GML ds_list_destroy(onMeList); ds_list_destroy(notOnMeList); Step GML ///Move entity_collision = false; xprevious = x; yprevious = y; //Check for intances on top while place_meeting(x,y+min(-1,vspd),par_entity) { with instance_place(x,y+min(-1,vspd),par_entity) { if !place_meeting(x,y-1,other) { xprevious = x; yprevious = y; ds_list_add(other.onMeList,id); y -= 9999; } else { ds_list_add(other.notOnMeList,id); y -= 9999; } } } //Check for intances on below while place_meeting(x,y+max(1,vspd),par_entity) { with instance_place(x,y+max(1,vspd),par_entity) { if !place_meeting(x,y-1,other) { ds_list_add(other.onMeList,id); y -= 9999; } else { ds_list_add(other.notOnMeList,id); y -= 9999; } } } //Check for intances to the right while place_meeting(x+max(1,hspd),y,par_entity) { with instance_place(x+max(1,hspd),y,par_entity) { if !place_meeting(x,y-1,other) { ds_list_add(other.onMeList,id); y -= 9999; } else { ds_list_add(other.notOnMeList,id); y -= 9999; } } } //Check for intances to the left while place_meeting(x+min(-1,hspd),y,par_entity) { with instance_place(x+min(-1,hspd),y,par_entity) { if !place_meeting(x,y-1,other) { ds_list_add(other.onMeList,id); y -= 9999; } else { ds_list_add(other.notOnMeList,id); y -= 9999; } } } //Move non-lifted back for (i=0;i<ds_list_size(notOnMeList);i++) { with ds_list_find_value(notOnMeList,i) { y += 9999; } } ds_list_clear(notOnMeList); //Move horizontally for (i=0;i<abs(hspd);i++) { if !solid_place(x+sign(hspd),y) { x += sign(hspd); } else { hspd *= -1; break; } } //Move vertically for (i=0;i<abs(vspd);i++) { if !solid_place(x,y+sign(vspd)) { y += sign(vspd); } else { vspd *= -1; break; } } //Move carried instances for (i=0;i<ds_list_size(onMeList);i++) { with ds_list_find_value(onMeList,i) { y += 9999; x += other.x-other.xprevious; y += other.y-other.yprevious; if solid_place(x,y) { other.entity_collision = true; } } } //Cancel movement if entity_collision == true { x = xprevious; y = yprevious; hspd *= -1; vspd *= -1; for (i=0;i<ds_list_size(onMeList);i++) { with ds_list_find_value(onMeList,i) { x = xprevious; y = yprevious; } } } //Clean up ds_list_clear(onMeList);
  10. Ale procenty są;) Jak myślisz,co za literówka?
  11. Na zdrówko Wujku Threef;) co za dobre piwo spijasz? ach własnie event podmieniłem na ten od Ciebie no i teraz to wyskakuje przy kompilacji taki błąd : Compile errors tekst na czerowono GML In Object obj_ice,In Event StepBeginEvent action number 1 at line 2: unknow function or script ds_exit Compile Failed - Please check the Compile window for any additional informatiom
  12. Threefie o to treść tego błędu GML ERROR in action number 1 of Step Event1 for object obj_ice: Data structure with index does not exist. at gml_Object_obj_ice_StepBeginEvent_1 (line 9) - for (i=0;i<ds_list_size(onMeList);i++) {
  13. No właśnie w obiekcie lód mam już to;) zobacz;) obj_lód CREATE GML ///Setup onMeList = ds_list_create(); multiF = .2; DESTROY GML ds_list_destroy(onMeList); BEGIN STEP GML ///Move while place_meeting(x,y-1,par_entity) { with instance_place(x,y-1,par_entity) { ds_list_add(other.onMeList,id); y -= 9999; } } for (i=0;i<ds_list_size(onMeList);i++) { with ds_list_find_value(onMeList,i) { y += 9999; multiF *= other.multiF; } } ds_list_clear(onMeList); Tak Treefie dokładnie mam;) w tym moim problematycznym obiekcie lodu,który sprawia problem,przy odczytu gry. obj_savegame kod jest taki: CREATE GML checked = false; list = ds_list_create(); EVENT kolizja z obj_playerem GML if( !checked ) { checked = true; game_save("Save.dat"); } DRAW GML draw_self(); draw_set_color( c_white ); draw_text(x,y-20,checked); Co jest ciekawe gra zapisuje się do save.dat i nawet jak wyjdę do głownego menu i nacisnę na load to odczytuje zapis gry,ale jak wyjdę całkowicie z gry i włączę ją na nowo,no to wywala błąd z obj_lód że jest z listą coś problem...
  14. Tak jak Treef dobrze powiedział problem jest z onMeList = ds_list_create(); część moich obiektów korzysta z tego,no i w momencie odczytu pliku save.dat dzieją się takie rzeczy. Oczywiście dałem tą linijkę w kodzie w tym obiekcie co powodował problem a dokładnie tak to wpisałem: w Stepie obiektu,który sprawia problem czyli obj_lód GML while place_meeting(x,y-1,par_entity) { with instance_place(x,y-1,par_entity) { ds_list_add(other.onMeList,id); y -= 9999; } } if(!ds_exist(onMeList,ds_type_list)) //dopisana linijka {onMeList=ds_list_create()} // dopisana linijka for (i=0;i<ds_list_size(onMeList);i++) { with ds_list_find_value(onMeList,i) { y += 9999; multiF *= other.multiF; } } ds_list_clear(onMeList); Jak to wpisałem,to teraz się wywala błąd od razu przy kompilacji.
  15. Czyli tak tworzę sobie np obj_do_niszczenia jakąś tam przeszkodę w niej w Create daje: GML obj_do_niszczenia= 0; potem instance code w roomie w tym samym obiekcie dałem ten kod co napisałeś GML obj_do_niszczenia = <ID inst_08C4257E Tylko pogubiłem się w jakim evencie mam dać ten kod? czy to ma być kolizja z graczem,czy jak z dźwignią? co dokładnie? GML if (obj_do_zniszczenia > 0 and instance_exists(obj_do_zniszczenia)) { with (obj_do_zniszczenia{ /* akcje */ } }
  16. Lordzie, a powiedz jak teraz w tej znikajacej i pojawiajacej sie platformie uzyskac taki efekt powolnego naturalnego zanikania i pojawiania sie?
  17. Lordzie von Gnysek dzięki zrobiłem tak jak napisałeś,tylko czas znikania platformy ustawiłem na 1;) i efekt niezły;) dziękuje;) Niech ci Bozia w kodzie wynagrodzi;)
  18. Czy ktoś wie lub zrobił może ruchomą dźwignię,która w momencie przełączenia pozbywa się danej przeszkody na planszy.
  19. Dzięki Panowie już problem rozwiązałem;)
  20. czyli co tworze jakiś pusty obiekt Lordzie i w nim ustawiam w zdarzeniu alarm0? czy jak?
  21. No własnie to już więcej zabawy,ale i tak dziękuje serdecznie. Ja powalczę teraz z tą platformą znikającą się i pojawiająca w odstępach np co 2sekundy;) ale chyba nie koniecznie w tym przypadku trzeba tworzyć osobny obiekt,bo zobacz...tutaj chodzi o sterowanie czasem sam nie wiem jak to nazwać.
  22. Dzięki z wybuchaniem działa rewelacja;D a teraz jak ustawić tak,że ta platforma w momencie skoku bohatera będzie znikać tak jak jest teraz,ale zaraz pojawiać się,bez wybuchu Lordzie?
  23. No dobra Lordzie,a jak teraz zrobić,żeby ta platforma na którą wskoczymy nie wybuchała tylko znikneła tak jak teraz to zrobiła,i zaraz się pojawiła,i tak za każdym razem jak na nią wskoczymy;) można jakoś operować zdarzeniem?? możliwe akcje;) 1.wskakuje bohater na platformę i zaraz ona znika i jak z niej zejdzie pojawia się 2.platforma sama pojawia się i znika w dowolnym odstępie czasowym..
  24. Lordzie,to może inaczej zamiast wybuchu lepszym rozwiązaniem było by sprawić,że ta platforma nie tylko zniknie,ale za sekunde dwie znowu się pojawi;) wiesz jak to zrobić?
  25. Threef brawo;) działa zrobiłem tak jak napisałeś nie w DRAW a w STEPIE racja;) wipisalem te dwa obiekty,które powodują problem;) Dziękuje!!!
×
×
  • Dodaj nową pozycję...