Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: venus en Octubre 17, 2015, 05:01:48 PM

Título: Menú de pausa
Publicado por: venus en Octubre 17, 2015, 05:01:48 PM
Os traigo un sencillo objeto que al ser pulsado pausará todo el juego. Es decir, un botón de pausa.
El código es muy sencillo:
if (!pausa) {
  instance_deactivate_all(true);
  physics_pause_enable(true);
  instance_activate_object(obj_pausa);
  pausa=true;
} else{
  instance_activate_all();
  physics_pause_enable(false);
  pausa=false;
}




Si quereis que algún objeto no sea pausado solo teneis que escribir: instance_activate_object(nombre_del_objeto);
Si no usais físicas quitad los dos physics_pause_enable y se os quedará así.
if (!pausa) {
  instance_deactivate_all(true);
  instance_activate_object(obj_pausa);
  pausa=true;
} else{
  instance_activate_all();
  pausa=false;
}




Si quereis incluir algún menú de pausa tan solo teneis que crearlo cuando se activa la pausa y eliminarlo cuando no. Quedaría tal que así:
if (!pausa) {
  instance_deactivate_all(true);
  physics_pause_enable(true);
  instance_create(x, y, menu_de_pausa);
  instance_activate_object(menu_de_pausa);
  instance_activate_object(obj_pausa);
  pausa=true;
} else{
  instance_activate_all();
  physics_pause_enable(false);
  with (menu_de_pausa) {instance_destroy();}
  pausa=false;
}
Título: Re:Menú de pausa
Publicado por: Clamud en Octubre 18, 2015, 12:52:31 AM
Falta corregir este error

############################################################################################
ERROR in
action number 1
of Mouse Event for Left Pressed
for object obj_pausa:

physics_pause_enable() The current room does not have a physics world representation
at gml_Object_obj_pausa_LeftButtonPressed_1 (line 3) -   physics_pause_enable(true);
############################################################################################
Título: Re:Menú de pausa
Publicado por: venus en Octubre 18, 2015, 04:25:14 PM
Cita de: venus en Octubre 17, 2015, 05:01:48 PM
Si no usais físicas quitad los dos physics_pause_enable y se os quedará así.
if (!pausa) {
  instance_deactivate_all(true);
  instance_activate_object(obj_pausa);
  pausa=true;
} else{
  instance_activate_all();
  pausa=false;
}



Título: Re:Menú de pausa
Publicado por: jodidox en Octubre 18, 2015, 04:45:29 PM
Tengo una pregunta, en mi juego las instancias fuera de la view se desactivan, utilizando este metodo al des-pausar el juego ¿todas alas instancias que esten fuere de la view tambien se activan? ¿o no hay problema, pues estas diciendo que "all" osea todas sin importar que esten o no en la view?
Título: Re:Menú de pausa
Publicado por: venus en Octubre 18, 2015, 11:11:31 PM
Con este menú se activan y desactivan  TODAS sin importar donde estén. Si quieres que no se activen las de fuera usa esto: http://docs.yoyogames.com/source/dadiospice/002_reference/objects%20and%20instances/instances/deactivating%20instances/instance_activate_region.html
Título: Re:Menú de pausa
Publicado por: jodidox en Octubre 19, 2015, 05:01:35 PM
Venus, es ese el mismo metodo que utilizo para que las instancias que esten fuere de la view se desactiven, por eso mismo te pregunte que si al utilizar tu script las instancias fue de la view se activarían pues no lo creo optimo a la hora del rendimiento, espero que me hayas entendido.  :D  XD
Título: Re:Menú de pausa
Publicado por: venus en Octubre 19, 2015, 05:44:02 PM
Repito, se activan todas. Incluidas las que tienes fuera de la view.
Si no quieres que te pase eso sustituye instance_activate_all(); por instance_activate_region(view_xview[0], view_yview[0], view_wview[0], view_hview[0], true);
Título: Re:Menú de pausa
Publicado por: jodidox en Octubre 19, 2015, 06:06:10 PM
Gracias Venus, aunque creo que eso fue lo mismo que yo dije  >:( ... Solo que no nos entendimos  :'(  XD Igual ¡GRACIAS!  :D