Los juegos funcionan en cuartos. Cada cuarto tiene un índice que se indica por el nombre del cuarto. El cuarto actual es almacenado en la variable room. No puedes asumir que los cuartos están numerados en un orden consecutivo. Por lo que nunca sumes o restes un número de la variable room. En lugar de ello usa las funciones y variables indicadas abajo. Por lo que una típica pieza de código que usarás sería:
{
if (room != room_last)
{
room_goto_next();
}
else
{
game_end();
}
}
Las siguientes variables y funciones se relacionan con los cuartos (rooms).
room Índice del cuarto actual; puede cambiarse para ir a un cuarto diferente, pero mejor usa las rutinas listadas abajo.
room_first* Índice del primer cuarto en el juego.
room_last* Índice del ultimo cuarto en el juego.
room_goto(numb) Ir al cuarto con indice numb.
room_goto_previous()Ir al cuarto anterior.
room_goto_next()Ir al siguiente cuarto.
room_restart() Reiniciar el cuarto actual.
room_previous(numb)Devuelve el índice del cuarto anterior a numb (-1 = ninguno) pero no va a él.
room_next(numb) Devuelve el índice del cuarto posterior a numb (-1 =ninguno).
game_end() Finaliza el juego.
game_restart() Reinicia el juego.
Los cuartos tienen varias propiedades adicionales:
room_width* Ancho del cuarto en píxeles.
room_height* Alto del cuarto en píxeles.
room_caption Título de la ventana del cuarto.
room_persistent Indica si el cuarto es persistente.
Muchos juegos ofrecen al jugador la posibilidad de guardar el juego y cargar un juego guardado. En el Game Maker esto ocurre automáticamente cuando el jugador presiona <F5> para guardar y <F6> para cargar. También puedes guardar y cargar juegos desde una pieza de código (nota que la carga sólo se lleva a cabo al final del step actual).
game_save(string) Guarda el juego al archivo con nombre string.
game_load(string) Carga el juego del archivo con nombre string.
Ten en cuenta que sólo los datos básicos del juego son guardados. Por ejemplo, si guardas cuando una canción está sonando, al cargar el juego la canción no sonará desde ese momento. Los recursos editados tampoco son guardados, ni las partículas, los contenidos de las estructuras de datos ni la configuración multijugador.