Marque pontos ao passar por um cano
Parte da seção Projetos do Journey de Godot da Coddy. Lição 27 de 36.
Cada cano pelo qual você passa vale um ponto. O cano tem um filho Area2D chamado Gap, uma faixa estreita atrás da abertura. O personagem voador toca nela somente depois de passar por ela, então é nesse momento que você marca pontos.
Em pipe.gd, conecte o sinal do filho por meio de $Gap e emita scored:
$Gap.body_entered.connect(_on_gap_body_entered)
func _on_gap_body_entered(body):
scored.emit()Em main.gd, conecte o sinal scored de cada novo cano. Adicione um a score e mostre o valor em $HUD/Score. str(score) transforma o número em texto. Mostre 0 no início.
Desafio
MédioMarque um ponto para cada cano pelo qual você passar.
- Em
pipe.gd, adicionesignal scored, conecte$Gap.body_enterede emitascoredquando um corpo entrar no vão. - Em
main.gd, adicionevar score = 0e exiba0em$HUD/Scoreno início. - Conecte o
scoredde cada cano a uma função que adiciona um e exibe a pontuação.
Pressione “Jogar” e passe voando por um vão: a pontuação exibirá 1. Depois, pressione “Verificar”.
Experimente você mesmo
extends Area2D
signal hit
const SPEED = 160
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position.x -= SPEED * delta
if position.x < -60:
queue_free()
func _on_body_entered(body):
hit.emit()
Todas as lições de Projetos
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chave3Projeto: Flappy Flyer
Gravidade do FlyerFaça o Flyer bater as asasPratique por conta própria: Playground de Godot