Menu
CoddyTech

Puntúa al pasar una tubería

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 27 de 36.

Cada tubería que atraviesas suma un punto. La tubería tiene un nodo hijo Area2D llamado Gap, una franja delgada detrás de la abertura. El pájaro solo lo toca después de atravesarlo, así que ese es el momento en que sumas puntos.

En pipe.gd, conecta la señal del nodo hijo mediante $Gap y emite scored:

$Gap.body_entered.connect(_on_gap_body_entered)

func _on_gap_body_entered(body):
	scored.emit()

En main.gd, conecta la señal scored de cada tubería nueva. Suma uno a score y muéstralo en $HUD/Score. str(score) convierte el número en texto. Muestra 0 al inicio.

challenge icon

Desafío

Intermedio

Consigue un punto por cada tubería que pases.

  1. En pipe.gd, añade signal scored, conecta $Gap.body_entered y emite scored cuando un cuerpo entre en el hueco.
  2. En main.gd, añade var score = 0 y muestra 0 en $HUD/Score al inicio.
  3. Conecta el scored de cada tubería a una función que sume uno y muestre la puntuación.

Pulsa «Jugar» y atraviesa un hueco: la puntuación muestra 1. Después, pulsa «Comprobar».

Pruébalo tú mismo

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 las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot