¿Incluye Game Maker alguna función que permita pausar el juego?
Yo suelo usar para pausa la función "show message", pero tiene el inconveniente de que si estaba el juego en modo "fullscreen" lo deshace, por lo que quisiera saber si hay algún modo de pausar un juego sin que cause ese inconveniente.
si game meker tiene esa función si tienes todas la librerias
pero yo nose mucho de game maker si supiera te dijera un codigo para eso pero buscare para ti ese codigo ;)
para crear un boton de pausa :-[ :D
1
Haz clic derecho en la carpet
Citar"Ojects"
(objetos) en el panel de ventana izquierdo y selecciona
Citar"Create Obkect"
(crear objeto).
2
Haz clic en el icono de la página al lado del campo de duende en la ventana de Nuevo Objeto y selecciona la imagen que quieres usar. El duende que uses determinará cómo lucirá el botón de pausa en el juego.
3
Haz clic en
Citar"Add Event"
(agregar evento) en la parte de abajo de la ventana de Nuevo Objeto.
4
Haz clic en el botón
Citar"Mouse"
y selecciona
Citar"Left Pressed"
"Left Pressed" (presión izquierda) del menú desplegable.
5
Haz clic en "Control" en la parte derecha de la ventana de Nuevo Objeto y arrastra en icono de Ejecutar Código en la ventana de Acciones. Haz doble clic en
CitarExecute Code
(ejecutar código) en la ventana de Acciones.
6
Agrega el siguiente codigo:
screen_refresh(); keyboard_wait(); io_clear();
7
Haz clic en el cheque verde en la esquina superior izquierda de la ventana Ejecutar Código para guardar el código GML. Haz clic en "OK" para guardar el botón de pausa.
8
Abre la ventana "Rooms" (espacios) y haz doble clic en "Objects" (objetos). Haz clic dentro de la caja gris u selecciona el objeto de pausa del menú. Haz clic dentro de la ventana del juego y coloca el botón donde desees. Haz clic en el cheque verde en la esquina superior izquierda de la ventana de Editar Espacio para guardar los cambios. Haz clic en la flecha verde en la barra de herramientas principal del juego para probarlo. Cuando haces clic en el botón, el juego se pausa. Presionar cualquier tecla lo reanudará.
En el event draw coloca esto.
if keyboard_check_pressed(vk_enter)
{
do
{
draw_text_transformed_color(view_xview[0]+460, room_height/2, "Pausa",3,3,0,c_blue,c_white,c_green,c_yellow,1);
screen_refresh();
keyboard_wait();
}
until (keyboard_lastkey == vk_enter)
}
este codigo de arriba no sirve en el studio :-X
pero esto si descargalo:
Entre unos que no se explican con claridad lo que dicen y otros que sugieren cosas que no sirven en mi versión del Game Maker, no vamos a ninguna parte. :-X
El problema grave ERES TU... pùes yo no veo la version del game maker que usas en la pregunta, solo veo un documento, icono que se usa para guiones... Por eso es que se coloca el icono de la version de gm que se usa al preguntar.
Ups. :-[
Mi versión es la Studio.
hey ya chequeaste los archivos que te puse debajo de mi primer post:
Game_Maker_pause_tutorials.zip estan en game maker 8 pero son faciles de seguir
He intentado probar esos programas, pero hay un problema: Tiene funciones que solo funcionan en Game Maker 8 pro, y como yo no tengo eso, se me impide ejecutar el programa.
Creo que lo más cómodo es subir el programa en importación, por que me permitiría directamente probarlo en mi versión de Game Maker (que es la versión Studio), y no hacerlo a través de Game Maker 8, con las molestias e inconvenientes que conlleva.
Aunque sufriendo un poco al final ya lo he entendido: creo un objeto que tenga un evento en el que al pulsar una tecla, lo desactivo todo (excepto el objeto "pausador"), y luego pulsando otra tecla hago que ese objeto vuelva a reactivar los objetos.
2 sprite
sprite_pause
sprite_continuar
2 obj
obj_pause //left pressed --save the game y le pones pause ----goto-room_pause --
obj_continuar //left pressed --load the game y le pones pause
ahora creas la room_pause y hay pones el obj_continuar y el menu inicio el obj_pause
suerte
Play is Life.
Pero ahora hay otro problema: Al desactivar los objetos, ya nada se muestra en pantalla.
En el ejemplo que me enviasteis había un arreglo para ello aprovechando una función que creaba una variable que almacenaba como estaba la pantalla en ese momento (plan fotografiar), pero esa función de Game Maker 8 pro ya no esta disponible en Game Maker Studio. ¿Hay otra función que la sustituya?
Todo lo que el juego dibuja se envía a la application surface, mediante la variable application_surface tu accedes a esa superficie y se puede usar como cualquier otra superficie., por ejemplo
sprite_create_from_surface(application_surface,x,y,ancho,alto, remover fondo, suavizar bordes, xorigin, yorigin)
Si tienes dudas te recomiendo consultar el tutorial que incluye GM:S sobre el uso de la application surface
Otro método (que también implica usar superficies) es usar la variable view_surface_id[] que asigna una vista a una superficie, superficie que luego se dibuja en DRAW GUI
Aun soy nuevo y no entiendo muchas de las funciones que me ponéis. :-X
Añádele que el tutorial que tenéis aquí es de cuando Game Maker 6, por lo que claramente hay ya mucho cambiado en Studio.
¿Que hace exactamente "sprite_create_from_surface"?
sprite_create_from_surface crea un nuevo sprite en el juego a partir del contenido de una superficie. Según penumbra la variable application_surface en Studio es la superficie que al final se dibuja en pantalla, es decir la que contiene todo lo que ves.
Lo que tendrías que poner es, en el evento create de tu objeto pausa:
[gml]
background = sprite_create_from_surface(application_surface, view_xview[0], view_yview[0], view_wview[0], view_hview[0], false, false, 0, 0);
instance_deactivate_all(true);
[/gml]
En el evento draw:
[gml]
draw_sprite(background, 0, view_xview[0], view_yview[0]);
// Acá podés dibujar el menú de pausa, si querés.
[/gml]
Y en destroy:
[gml]
sprite_delete(background);
instance_activate_all();
[/gml]
Después creás el objeto para pausar el juego, y lo destruís para sacar la pausa.
Verificá bien el nombre de las funciones y el orden de los parámetros porque puede que me falle la memoria.
en create
desactivas todo, pero tambien puedes mantener los objetos que necesites funcionando ejemplo:
instance_deactivate_all(true);
instance_activate_object(obj_col1);
instance_activate_object(obj_col2);
instance_activate_object(obj_col3);
instance_activate_object(obj_col4);
instance_activate_object(obj_match_number);
instance_activate_object(obj_contador);
alarm[0] = 90;
Pues gracias, al fin la pausa funciona a la perfección.
Eso si, veo que en el código ordenas que el sprite que se usa como imagen en la pausa se destruya, cuando no debería hacer falta ya que es una variable local que desaparece con el objeto, por no hablar que si fuese una variable global sera sustituido su valor la próxima vez que pause.
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Create Event
for object object10:
Push :: Execution Error - Variable Get -1.application_surface(100083, 0)
at gml_Object_object10_Create_0 (line 1) - background = sprite_create_from_surface(application_surface, view_xview[0], view_yview[0], view_wview[0], view_hview[0], false, false, 0, 0);
############################################################################################
Cita de: Marth en Junio 03, 2014, 10:20:24 AM
Pues gracias, al fin la pausa funciona a la perfección.
Eso si, veo que en el código ordenas que el sprite que se usa como imagen en la pausa se destruya, cuando no debería hacer falta ya que es una variable local que desaparece con el objeto, por no hablar que si fuese una variable global sera sustituido su valor la próxima vez que pause.
Sí que hace falta. La variable desaparece con el objeto, pero el sprite no. Si no lo destruís, el sprite queda cargado en memoria aunque ya no es útil, y el juego pasaría a ocupar más memoria RAM cada vez que se pause.
¿Quieres decir que pasa a ser como uno de los "sprites" que se preparan en la correspondiente sección?
En fin, gracias por aclarármelo.
a mi no me funciona ayuda:
___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Create Event
for object obj_pause1:
Push :: Execution Error - Variable Get -1.application_surface(100117, 0)
at gml_Object_obj_pause1_Create_0 (line 4) - background = sprite_create_from_surface(application_surface, view_xview[0], view_yview[0], view_wview[0], view_hview[0], false, false, 0, 0);
############################################################################################
ayuda