Cygnus Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 Cześć wszystkim Mam taki dziwny problem z zapisem gry. Gdy gra nie jest zachowana przez gracza podczas gry (prościej dopóki nie zbierze się obiektu save) to wywala błąd fatalny i wyłącza grę natomiast gdy stan gry jest już zachowany i zbierzemy obiekt save to wtedy błędu nie ma. Zawsze jest ten błąd gdy nie zachowaliśmy gry, a chcemy ją wczytać w menu. Ja myślę,że trzeba sprawdzić czy plik jest pusty jak jest pusty to komunikat i nic nie robi, a jak pełny to wczytuje(dodać warunek)jak to zrobić? niżej kod mojego obiektu_save,który zapisuje moją grę w danym miejscu. CREATE GML licznik=x/14; checked = false; //sprawdzenie list = ds_list_create(); //lista zachowujaca stan gry saveInfo=false; //informacja o zachowaniu gry saveInfoTime=3; //infroamcja o czasie zachowania gry ALARM 0 GML saveInfo=false; DRAW GML draw_self(); if (saveInfo) { draw_text(x, y, "save game has been completed") } kolizja z bohaterem GML if( !checked ) { checked = true; game_save("Save.dat"); //gre zachowywana pod nazwa pliku Save.dat if (!saveInfo) { saveInfo=true; audio_play_sound(dzwiek_checkpointisave, 1, false); alarm[0]=saveInfoTime*fps; //czas * ilosc FPS prosty wzor do zachowania stanu gry } } a tu przycisk obj_load game,który ładuje mi zapis gry STEP GML if (room !=roo_menu && mouse_check_button_pressed(mb_left)) { //nie rob nic } else if (position_meeting(obj_cursor.x,obj_cursor.y,obj_load_game)) && mouse_check_button_pressed(mb_left) //Gra wczytuje zachpowanie dopiero gdy nacisniemy na Load Game prawym myszy** nie gdy naciskamy w wolne pole pokoju menu { game_load( "Save.dat" ); audio_stop_sound (dzwiek_menu_glowne_gry); } teraz tak w STEP jeszcze mam: Bloczek wybrany Execute Script Applies to ustawione na Self script: scr_mouse_hover Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 Kod błędu pls. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 Podczas wczytywania w żaden sposób nie zabezpieczasz się przed ewentualnością gdy nie ma pliku. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 8 Października 2015 Autor Udostępnij Opublikowano 8 Października 2015 Podczas wczytywania w żaden sposób nie zabezpieczasz się przed ewentualnością gdy nie ma pliku. Czy wystarczy tu dać jakiś warunek,który by to sprawdzał?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 Tak. Taki który będzie sprawdzał czy plik istnieje. Nie podam jaki bo dobrze Ci zrobi poszukanie tego na własną rękę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 8 Października 2015 Autor Udostępnij Opublikowano 8 Października 2015 Tak. Taki który będzie sprawdzał czy plik istnieje. Nie podam jaki bo dobrze Ci zrobi poszukanie tego na własną rękę. Threef Kurcze to akurat jest dla plików txt chyba o to chodzi GML file_exists(fname) do plików .dat nie mogę znaleźć Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 to działa dla każdego typu plików Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 8 Października 2015 Autor Udostępnij Opublikowano 8 Października 2015 Tak. Taki który będzie sprawdzał czy plik istnieje. Nie podam jaki bo dobrze Ci zrobi poszukanie tego na własną rękę. No dobra tylko nie wiem,czy dobrze myśle?? GML if file_exists("save.dat") { file=file_text_open_append("save.dat"); } else if{ file=file_text_open__write("save.dat"); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 źle. if file_exists("save.dat") { game_load( "Save.dat" ); } else { show_messeges("Nie znaleziono pliku zapisu."); //good englisz zapomniałem jak się pisze "wiadomość" :D } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 8 Października 2015 Udostępnij Opublikowano 8 Października 2015 GML if file_exists("save.dat") { file=file_text_open_append("save.dat"); } else if{ //<------ Do czego ten if? file=file_text_open__write("save.dat"); //<------ ok pod warunkiem że dopiszesz kod zapisu a nie tak zostawisz } Ciekawi mi jeszcze po jakiego grzyba Ci otwieranie pliku tekstowego skoro używasz game_save? EdiePL podał Ci dobre rozwiązanie oprócz tego, że piszę się show_message, ale przed tym Cię sam przestrzegł. Więc: GML if(file_exists("save.dat")) { game_load( "Save.dat" ); }else{ show_message("Nie znaleziono pliku zapisu."); }; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 9 Października 2015 Autor Udostępnij Opublikowano 9 Października 2015 GML if file_exists("save.dat") { file=file_text_open_append("save.dat"); } else if{ //<------ Do czego ten if? file=file_text_open__write("save.dat"); //<------ ok pod warunkiem że dopiszesz kod zapisu a nie tak zostawisz } Ciekawi mi jeszcze po jakiego grzyba Ci otwieranie pliku tekstowego skoro używasz game_save? EdiePL podał Ci dobre rozwiązanie oprócz tego, że piszę się show_message, ale przed tym Cię sam przestrzegł. Więc: GML if(file_exists("save.dat")) { game_load( "Save.dat" ); }else{ show_message("Nie znaleziono pliku zapisu."); }; Dzieki..racja po co.mi otwieranie pliku. To wrzucam do kolizji bohatera 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ę