Pues en mi caso al apretar el botón P guardo y al apretar Z cargo, pero me provoca un bucle infinito.
(https://i.gyazo.com/a5d0d4ceb4812fca438b17ca92fc8c29.gif)
obj_Control //Persistente
prees P-key
/// Reiniciar
//game_restart();
audio_stop_all()
audio_play_sound(snd_Why_Did_You_Do_It,0,1);
game_load("guardar.sav");
obj_Guardar
CREATE
/// Inicializacion 3 líneas máximo
event_inherited(); // heredar del padre
image_speed = 0.1;
paginas[0] = "¿Guardar partida?#Pulsa Z para guardar -->";
paginas[1] = "Juego guardado# pulsa P para cargar -->.";
mostrar = false; // mostrar cartel por defecto
pagina = -1; // páigna actual, -1 = inactivo
guardar="guardar.sav"
eliminar=false
STEP
/// Detectar si jugador abre el cartel
if (keyboard_check_pressed(ord('Z')) and distance_to_object(objJugador)<3) {
mostrar = true;
}
// Si se aleja cerramos el cartel y reiniciamos pagina
if (distance_to_object(objJugador)>3) { mostrar = false; pagina = -1; }
/// Detectar si jugador pasa página y guardar
if (keyboard_check_pressed(ord('Z')) and mostrar)
// Pasar página y guardar (solo al pasar la primera)
if (pagina+1 < array_length_1d(paginas)) {
pagina++;
if (pagina == 1){
game_save("guardar.sav")
instance_deactivate_object(obj_Bloque_Guardado);
}
} else {
// Si nos pasamos del máximo reiniciamos el cartel
mostrar = false;
pagina = -1;
}
if keyboard_check_pressed(ord("P")){
game_load("guardar.sav")
}
DRAW GUI
//para poder ver el objeto
draw_self()
/// Comprobar si el jugador está cerca
if(mostrar){
draw_sprite(spr_HUD_Texto,11,0,31);
draw_set_font(f_Texto);
draw_set_halign(fa_left);
draw_set_color(c_black);
draw_text(124,64,paginas[pagina]);
draw_set_color(c_white);
draw_text(123,63,paginas[pagina]);
}
Creo que debería eliminar todo este código del obj_Guardar, y colocar que si colisiona una vez con el, se aplique auto-guardado, digamos que se convertiría en un chekpoint que pasa de estar inactivo a activo, de esta forma el jugador volverá a su ultimo chekpoint cuando apreté el botón "P" del obj_Controlador, con esto estoy creando un dialogo inútil en el obj_Guardar, ademas que se hace molesto hablar para solo guardar el ultimo punto de control, pero la programación me salio con este fallo.