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.
Desafío
IntermedioConsigue un punto por cada tubería que pases.
- En
pipe.gd, añadesignal scored, conecta$Gap.body_enteredy emitescoredcuando un cuerpo entre en el hueco. - En
main.gd, añadevar score = 0y muestra0en$HUD/Scoreal inicio. - Conecta el
scoredde 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
3Proyecto: Flappy Flyer
Gravedad del voladorHaz aletear al voladorPractica por tu cuenta: Playground de Godot