Un punto de control
Parte de la sección Señales y colisiones del Journey de Godot de Coddy. Lección 20 de 27.
Un punto de control cambia el lugar al que te envían los pinchos. Así que el punto de inicio pasa a ser una variable en la parte superior de main.gd, donde todas las funciones pueden acceder a ella:
var start_point = Vector2(80, 280)
func _on_spikes_body_entered(body):
body.position = start_pointLos pinchos te envían al lugar que contenga start_point en ese momento. Cambia la variable y el siguiente impacto te enviará allí.
Cámbiala con start_point = .... Escribir var start_point = ... dentro de una función crea una variable nueva que solo existe en esa función. La de la parte superior sigue siendo la misma.
Desafío
IntermedioHaz que la bandera sea un punto de control.
- En
_on_checkpoint_body_entered, establecestart_pointen$Checkpoint.position, sinvar. - Pinta la bandera de color menta:
$Checkpoint.modulate = Color(0.49, 0.95, 0.75).
Pulsa «Jugar», toca la bandera y después los pinchos: volverás a aparecer en la bandera. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends Node2D
var start_point = Vector2(80, 280)
func _ready():
$Spikes.body_entered.connect(_on_spikes_body_entered)
$Checkpoint.body_entered.connect(_on_checkpoint_body_entered)
func _on_spikes_body_entered(body):
body.position = start_point
func _on_checkpoint_body_entered(body):
pass
Todas las lecciones de Señales y colisiones
Practica por tu cuenta: Playground de Godot