Menu
CoddyTech

Choca contra las tuberías

Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 23 de 33.

Chocar contra una tubería o el suelo debería terminar la partida. Ambos casos conducen a una función en main.gd:

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

Una tubería. La tubería es un Area2D con dos formas, las mitades superior e inferior. El hueco no tiene forma. En pipe.gd, conecta body_entered y emite una señal hit. main.gd conecta la señal hit de cada tubería nueva antes de añadirla.

El suelo. Su parte superior está en y = 318. El borde del volador está a 12 píxeles de su centro, así que toca el suelo cuando position.y supera 306. Después, flyer.gd emite crashed.

El volador, las tuberías y el temporizador se pueden pausar, así que la pausa los congela a todos.

challenge icon

Desafío

Difícil
  1. En pipe.gd, agrega signal hit. Conecta body_entered en _ready y emite hit cuando un cuerpo entre.
  2. En flyer.gd, agrega signal crashed y emítela cuando position.y sea mayor que 306.
  3. En main.gd, conecta hit de cada tubería y crashed del personaje a _on_crash. Muestra Game Over y pausa el juego.

Pruébalo tú mismo

extends Node2D

const PIPE = preload("res://pipe.tscn")

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	$Pipes.add_child(pipe)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Proyectos

Practica por tu cuenta: Playground de Godot