Um ponto de controle
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 20 de 27.
Um ponto de controle muda o local para onde os espinhos enviam você. Assim, o ponto inicial se torna uma variável no topo de main.gd, onde todas as funções podem acessá-la:
var start_point = Vector2(80, 280)
func _on_spikes_body_entered(body):
body.position = start_pointOs espinhos enviam você para o local que start_point contém naquele momento. Altere a variável, e o próximo impacto enviará você para lá.
Altere-a com start_point = .... Escrever var start_point = ... dentro de uma função cria uma nova variável que existe apenas nessa função. A variável no topo continua igual.
Desafio
MédioTransforme a bandeira em um ponto de controle.
- Em
_on_checkpoint_body_entered, definastart_pointcomo$Checkpoint.position, semvar. - Deixe a bandeira verde-menta:
$Checkpoint.modulate = Color(0.49, 0.95, 0.75).
Pressione “Jogar”, toque na bandeira e depois nos espinhos: você volta para a bandeira. Em seguida, pressione “Verificar”.
Experimente você mesmo
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 as lições de Sinais e colisões
Pratique por conta própria: Playground de Godot