Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Pausar juegos y el modo de procesamiento (process mode)¶
Introducción¶
En la mayoría de los juegos, es deseable interrumpir el juego en algún momento para hacer algo más, como tomar un descanso o cambiar opciones. Implementar un control detallado de qué puede pausarse (y qué no) es mucho trabajo, por lo que Godot proporciona un marco simple para pausar.
Como funciona la pausa¶
Para pausar el juego, se debe establecer el estado de pausa. Esto se hace asignando true
a la propiedad SceneTree.paused:
get_tree().paused = true
GetTree().Paused = true;
Hacer esto provocará dos cosas. Primero, se detendrán las físicas 2D y 3D para todos los nodos. Segundo, el comportamiento de ciertos nodos se detendrá o se iniciará dependiendo de su modo de procesamiento (process mode).
Nota
Los servidores de física pueden activarse mientras el juego está en pausa usando sus métodos set_active
.
Modos de procesamiento¶
Each node in Godot has a "Process Mode" that defines when it processes. It can be found and changed under a node's Node properties in the inspector.

También puedes modificar la propiedad con código:
func _ready():
process_mode = Node.PROCESS_MODE_PAUSABLE
public override void _Ready()
{
ProcessMode = Node.ProcessModeEnum.Pausable;
}
Esto es lo que cada modo indica que un nodo debe hacer:
Inherit: Process depending on the state of the parent, grandparent, etc. The first parent that has a non-Inherit state.
Pausable: Process the node (and its children in Inherit mode) only when the game is not paused.
WhenPaused: Process the node (and its children in Inherit mode) only when the game is paused.
Always: Process the node (and its children in Inherit mode) no matter what. Paused or not, this node will process.
Disabled: The node (and its children in Inherit mode) will not process at all.
Por defecto, todos los nodos tienen esta propiedad en el estado "Heredado" (Inherit). Si el padre se establece en "Heredado", entonces se verificará el abuelo y así sucesivamente. Si no se encuentra un estado en ninguno de los abuelos, se usará el estado de pausa en SceneTree. Esto significa que, por defecto, cuando el juego está en pausa, todos los nodos estarán en pausa. Varias cosas suceden cuando un nodo deja de procesarse.
The _process
, _physics_process
, _input
, and _input_event
functions
will not be called. However signals still work and cause their connected function to
run, even if that function's script is attached to a node that is not currently being processed.
Los nodos de animación pausarán su animación actual, los nodos de audio pausarán su transmisión de audio actual y las partículas se detendrán. Estos se reanudarán automáticamente cuando el juego deje de estar en pausa.
Es importante tener en cuenta que incluso si un nodo está siendo procesado mientras el juego está en pausa, la física NO funcionará para él de forma predeterminada. Como se mencionó anteriormente, esto se debe a que los servidores de física están desactivados. Los servidores de física pueden activarse mientras el juego está en pausa mediante el uso de sus métodos set_active
.