Una sola vez
Parte de la sección Reglas del juego del Journey de Godot de Coddy. Lección 4 de 29.
Un temporizador vuelve a empezar cada vez que se agota. Eso es adecuado para una luz intermitente, pero una bomba debería explotar una sola vez.
Establece one_shot en true y el temporizador se agota una vez y después se detiene:
$Timer.one_shot = trueSi vuelves a llamar a start(), se inicia una ejecución más.
En este castillo, E abre la puerta y pone en marcha un temporizador de dos segundos. Cuando se agota, cierra la puerta.
Desafío
FácilHaz que la puerta se cierre una sola vez.
- En
_ready(), establece$Timer.one_shotentrue. - Deja el resto tal como está para que E siga abriendo la puerta.
Pulsa «Jugar» y luego E: dos segundos después, la puerta se cierra y permanece cerrada. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Node2D
func _ready():
$Timer.wait_time = 2
$Timer.timeout.connect(_on_timer_timeout)
func _process(delta):
if Input.is_action_just_pressed("action"):
$Gate.position.y = 20
$Timer.start()
func _on_timer_timeout():
$Gate.position.y += 140
Todas las lecciones de Reglas del juego
1Temporizadores
El nodo TimerIniciar un temporizadorTiempo de esperaUna sola vezEsperar a un temporizadorPractica por tu cuenta: Playground de Godot