Menu
CoddyTech

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.

challenge icon

Desafio

Médio

Marque um ponto para cada cano pelo qual você passar.

  1. Em pipe.gd, adicione signal scored, conecte $Gap.body_entered e emita scored quando um corpo entrar no vão.
  2. Em main.gd, adicione var score = 0 e exiba 0 em $HUD/Score no início.
  3. Conecte o scored de 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

Pratique por conta própria: Playground de Godot