Cygnus Opublikowano 15 Czerwca 2015 Udostępnij Opublikowano 15 Czerwca 2015 Dzień dobry wszystkim mam taki problem otóż stworzyłem sobie w menu gry z load game i teraz w grze załóżmy jestem w drugim świecie nachodzę na dany jakiś obiekt i zapisuje sobie gre,i teraz jak wyjdę z gry i po naciśnięciu load game,żeby to to sczytał,że skończyłem na tym drugim etapie. Jak to zrobić? domyślam się,że muszę obiekt utworzyć. Posiadam Game Maker Studio Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 15 Czerwca 2015 Udostępnij Opublikowano 15 Czerwca 2015 Zobacz w dokumentacji funkcje game_save() i game_load() są uniwersalne i to oznacza że rzadko będą działać tak jak chcesz. Jeżeli potrzebujesz czegoś więcej to musisz się zainteresować obsługą plików i jakoś zaplanować swój "stan gry". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 18 Czerwca 2015 Autor Udostępnij Opublikowano 18 Czerwca 2015 Zobacz w dokumentacji funkcje game_save() i game_load() są uniwersalne i to oznacza że rzadko będą działać tak jak chcesz. Jeżeli potrzebujesz czegoś więcej to musisz się zainteresować obsługą plików i jakoś zaplanować swój "stan gry". MI chodzi głównie o zapis gry podobny do tego co jest w TOP HAT czyli nachodzę na dany element na planszy,i następuje zapis..potem wychodzę z gry do głównego menu klikam na load game i zaczynam od tego właśnie momentu,co zapisałem dokładnie o takie coś mi chodzi.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gibki Kaktus Opublikowano 18 Czerwca 2015 Udostępnij Opublikowano 18 Czerwca 2015 Dostałeś funkcję która spełnia Twoje wymagania, tylko musisz ją umieścić w odpowiednim obiekcie i evencie ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 18 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 18 Czerwca 2015 zrob sobie ten obiekt ktory bedzie zapisywal gre jak na niego wejdziesz daj mu w create GML checked = false; i w evencie kolizji z bohaterem daj GML if( !checked ) { checked = true; game_save(); } a w obiekcie, który tworzy się pierwszy w grze (albo pod przyciskiem Load Game w menu) daj: GML game_load() podstawowe strasznie ale powinno działać chyba Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 zrob sobie ten obiekt ktory bedzie zapisywal gre jak na niego wejdziesz daj mu w create GMLchecked = false; i w evencie kolizji z bohaterem daj GMLif( !checked ) { checked = true; game_save(); } a w obiekcie, który tworzy się pierwszy w grze (albo pod przyciskiem Load Game w menu) daj: GMLgame_load() podstawowe strasznie ale powinno działać chyba Dzię ANtY działa;) kurcze jak nic na żywo masz flaszke ode mnie za pomoc;) Widzę,że też piszesz gry,ja jestem grafikiem 2D i 3D oraz pracuje przy sieciach ,a kolega ogarnia programowanie,tyle,że teraz nie ma jak,bo wyjechał,i sporo mi roboty zostało. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 zrob sobie ten obiekt ktory bedzie zapisywal gre jak na niego wejdziesz daj mu w create GMLchecked = false; i w evencie kolizji z bohaterem daj GMLif( !checked ) { checked = true; game_save(); } a w obiekcie, który tworzy się pierwszy w grze (albo pod przyciskiem Load Game w menu) daj: GMLgame_load() podstawowe strasznie ale powinno działać chyba ANtY zrobiłem sobie obj_savegame a w nim dałem ten kod: w Create GML [/gml] checked = false; [gml] w evencie kolizji dałem ten kod co napisałeś GML [/gml] if( !checked ) { checked = true; game_save(); } [gml] no i tu w linijce przy game_save(); mam podświetlone na czerwono,że jest błąd próbowałem zarówno w evencie kolizji u bohatera jak i w evencie kolizji w tym obiekcie nowym czyli obj_savegame no i nadal ten błąd w linijce savegame(); natomiast w obj_load_game ( to objekt gdzie mam przycisk load game w menu) dałem w Create w kodzie GML [/gml] game_load() [gml] to też podświetla się na czerwono game_load() może średnik powinien być no nie wiem na końcu nawiasu ja ogólnie w tym obiekcie obj_load_game mam tak: STEP - execute script GML [/gml] scr_mouse_hover [gml] Bo mam sterowanie myszką menu takie zrobiłem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Czerwca 2015 Udostępnij Opublikowano 19 Czerwca 2015 A nie trzeba przypadkiem powiedzieć do jakiego pliku ma się zapisać? GML game_save("Save.dat") game_load("Save.dat") Dzięki temu możesz mieć kilka save. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 19 Czerwca 2015 true, my bad, tak jak threef mówi trzeba podać nazwę pliku do jakiego chcemy sejwować, i jaki chcemy wczytywać w nawiasie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 A nie trzeba przypadkiem powiedzieć do jakiego pliku ma się zapisać? GMLgame_save("Save.dat") game_load("Save.dat") Dzięki temu możesz mieć kilka save. To racja dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 true, my bad, tak jak threef mówi trzeba podać nazwę pliku do jakiego chcemy sejwować, i jaki chcemy wczytywać w nawiasie ANtY tak też zrobiłem jak ten kolega napisał fakt teraz nie ma błędów,ale też to nic nie daje nachodzę bohaterem na ten obiekt save i nic nie zapisuje...zupełnie nic.. w Create w moim stworzonym obiekcie GML checked = false; tu w evencie bohatera lub w evencie tego nowego obiektu co stworzyłem GML if( !checked ) { checked = true; game_save("Save.dat"); } natomiast w obj_load_game ( to objekt gdzie mam przycisk load game w menu) dałem w Create w kodzie STEP - execute script GML scr_mouse_hover i niżej to w osobnym pliku w kodzie GML game_load("Save.dat") Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 19 Czerwca 2015 a tworzy się ten plik "save.dat"? spróbuj zrobić np. "C:\save.dat" przy zapisywaniu i po wejsciu na ten checkpoint zobacz czy na dysku C stworzył ci się plik na pewno dałeś ten kod "if[...]" w evencie kolizji z bohaterem w objekcie checkpointa? daj w draw tego obiektu checkpointa GML draw_self(); draw_set_color( c_white ); draw_text(x,y-20,checked); i zobacz, czy się zmieni cyferka nad tym obiektem jak na niego wejdziesz bohaterem, jak nie to znaczy, że nie wykrywa kolizji / ngdy do niej nie dochodzi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 19 Czerwca 2015 Udostępnij Opublikowano 19 Czerwca 2015 spróbuj zrobić np. "C:\save.dat" przy zapisywaniu i po wejsciu na ten checkpoint zobacz czy na dysku C stworzył ci się plikSandbox. GM:S nie pozwala zapisywać gdzie się chce. Pliki można odczytywać tylko z folderu gry oraz folderu danych gry (appdata), a zapisywać tylko w tym drugim. Twój plik będzie w: C:\Users\Nazwa Użytkownika\AppData\Local\Nazwa_twojej_gry Być może twój save nie działa bo, tak jak pisałem wcześniej, GM:S stara się aby był uniwersalny. Po prostu nie działa w twoim wypadku. Może coś kombinujesz z obiektami, a może save się wczytuje ale ty zaraz potem coś psujesz? Najpierw sprawdź czy plik się tworzy. Jeżeli nie to próbuj aż będzie się tworzyć. Jeżeli się tworzy a dalej nie działa to musisz pomyśleć o innym sposobie zapisywania. Zrób wtedy wielką listę co musi twój save pamiętać czyli room na którym byłeś, pozycja x i y gracza, liczba złota, HP, zabici przeciwnicy, etc. Potem po prostu będziesz musiał to wszystko zapisywać i wczytywać z pliku ręcznie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 No dobra teraz się tworzy plik sprawdziłem ścieżkę dostępu,a i licznik z 0 wskoczył na 1 czyli zapisuje pod nazwą jak sprawdzałem save.dat ok,ale teraz kwestia mojego przycisku w menu load game może ja źle kod wpisuje bo mam dokładnie tak w tym przycisku load game w kodzie: STEP i w akcji mam: GML scr_mouse_hover o tak mam,i potem dodałem nowy kod i w nim wpisałem GML game_load("Save.dat") no i wywala błąd jak próbuje nacisnąć na ten load game przycisk Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 o taki błąd mi wywala po naciśnięciu load game,albo jak próbuje do głównego menu wejść jak dałem w przycisku load game ten kod GML game_load("Save.dat") to mi taki błąd wyskakuje 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++) { rozumiem,że się odwołuje bład do tego obiektu ice mam stworzony obiekt ,który jest lodem i bohater się po nim ślizga. tu kod tego obiektu obj_ice: Begin STEP GML ///ruch 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); Nie mam pojęcia,dlaczego to powoduje jakis konflikt z funkcją load game Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 19 Czerwca 2015 weź wywal cały kod z tego przycisku i daj w stepie: GML w = sprite_get_width( sprite_index ); h = sprite_get_height( sprite_index ); xx = device_mouse_x(0); yy = device_mouse_y(0); if( device_mouse_check_button_pressed( 0,mb_left ) and xx > x-w/2 and xx < x+w/2 and yy > y-h/2 and yy < y+h/2 ) { game_load( "Save.dat" ); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 19 Czerwca 2015 Autor Udostępnij Opublikowano 19 Czerwca 2015 weź wywal cały kod z tego przycisku i daj w stepie: GMLw = sprite_get_width( sprite_index ); h = sprite_get_height( sprite_index ); xx = device_mouse_x(0); yy = device_mouse_y(0); if( device_mouse_check_button_pressed( 0,mb_left ) and xx > x-w/2 and xx < x+w/2 and yy > y-h/2 and yy < y+h/2 ) { game_load( "Save.dat" ); } No to jak wszystko wywaliłem w momencie klikniecia lewym przyciskiem myszki na load game mam taki błąd: zrobiłem tak jak napisałem wywaliłem wszystko cały kod z tego obiektu przycisku i w stepie dałem ten kod,no i bład o taki jest: 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++) { pod tym obiektem mam ruchomą poruszającą się platformę kurcze że te z problem z tym save game jest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 19 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 19 Czerwca 2015 co to za object gml_Object_object164 ? wywal ten kod z tego obiektu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 20 Czerwca 2015 Autor Udostępnij Opublikowano 20 Czerwca 2015 Właśnie jak go wywalam,to nic nie daje to:/ coś cięzko będzie z tym game save;) i load;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 20 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 20 Czerwca 2015 gdybym konkretniej wiedział jak to wygląda to bym mógł pomóc, a tak to nie wiem co to za obiekt, nie wiem jakie obiekty masz w tym roomie, itp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 20 Czerwca 2015 Udostępnij Opublikowano 20 Czerwca 2015 Rozwiązanie tego jednego problemu jest banalnie proste. ANtY ić stont. Po wczytaniu gry wszystko próbuje wrócić do normy. Ale są dane które nie zostają przywrócone, w tym wypadku jest to lista. Wystarczy że linijkę przed tym gdzie pojawia się błąd (masz opisane w komunikacie błędu) wstawisz: GML if(!ds_exist(onMeList,ds_type_list)) {onMeList=ds_list_create()} Jest to proste sprawdzenie czy lista istnieje i w razie czego stworzenie jej od nowa. Niestety wróżę że zaraz po poprawieniu tego jednego błędu pojawi się inny. Tak już jest jak robi się zlepki kodu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 20 Czerwca 2015 Autor Udostępnij Opublikowano 20 Czerwca 2015 Rozwiązanie tego jednego problemu jest banalnie proste. ANtY ić stont. Po wczytaniu gry wszystko próbuje wrócić do normy. Ale są dane które nie zostają przywrócone, w tym wypadku jest to lista. Wystarczy że linijkę przed tym gdzie pojawia się błąd (masz opisane w komunikacie błędu) wstawisz: GMLif(!ds_exist(onMeList,ds_type_list)) {onMeList=ds_list_create()}Jest to proste sprawdzenie czy lista istnieje i w razie czego stworzenie jej od nowa. Niestety wróżę że zaraz po poprawieniu tego jednego błędu pojawi się inny. Tak już jest jak robi się zlepki kodu. Powinno zadziałać Threefie...jutro zobacze dzięki;) jak co,to bede pisał;) ale myśle ,że ifem zadziała;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 21 Czerwca 2015 Autor Udostępnij Opublikowano 21 Czerwca 2015 Threef no dobra a jest możliwość takiego zapisu gry,żeby nie musiał każdy obiekt wczytywać jego poprzedni stan głównie chodzi o to,żeby było wczytywane miejsce ostatniego stanu gry czyli byłem w 3 świecie i od tego zaczynam jeśli kliknę na load game ,nie muszą się wczytywać wrogowie,np zabiłem ich w tym świecie,ale nie muszą być zabici po wczytaniu stanu gry.Najważniejsze,to żeby wczytywał ilość żyć całą energie i świat w którym ostatnio wykonałem zapis gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 21 Czerwca 2015 Filar Społeczności Udostępnij Opublikowano 21 Czerwca 2015 jest możliwość, zobacz operacje na plikach ini http://docs.yoyogames.com/source/dadiospic...iles/index.html (ini_open, close, write i read) zapisujesz sobie do pliku tylko zmienną, na którym poziomie jesteś, przy wczytywaniu wczytujesz te zmienną i ten poziom odpalasz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 3 Lipca 2015 Autor Udostępnij Opublikowano 3 Lipca 2015 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. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 3 Lipca 2015 Udostępnij Opublikowano 3 Lipca 2015 Przydałby się komunikat błędu następnym razem. ;) Na szczęście dobrze wiem w czym jest problem. Nie zdefiniowałeś nigdzie tej zmiennej. W create daj: GML onMeList=ds_list_create()To jest mądre rozwiązanie w tej sytuacji. Ale uniwersalnie możesz robić:GML onMeList=-1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 3 Lipca 2015 Autor Udostępnij Opublikowano 3 Lipca 2015 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... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 3 Lipca 2015 Udostępnij Opublikowano 3 Lipca 2015 Fajnie... a komunikat błędu? Przydałby się niezmiernie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 3 Lipca 2015 Autor Udostępnij Opublikowano 3 Lipca 2015 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++) { Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 3 Lipca 2015 Udostępnij Opublikowano 3 Lipca 2015 No dobra, więc zmieńmy ten cały twój event: GML if(ds_exist(onMeList,ds_type_list)) { 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); } Jestem po kilku piwach więc w razie jakbym palnął jakąś głupotę to liczę że ktoś mnie poprawi i nie będzie miał mi to za złe. 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ę