Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Bata nos canos

Parte da seção Projetos do Journey de Godot da Coddy. Lição 23 de 33.

Colidir com um cano ou com o chão deve encerrar o jogo. Ambos levam a uma função em main.gd:

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

Um cano. O cano é um Area2D com duas formas, as metades superior e inferior. O vão não tem forma. Em pipe.gd, conecte body_entered e emita um sinal hit. main.gd conecta o sinal hit de cada novo cano antes de adicioná-lo.

O chão. Sua parte superior fica em y = 318. A borda do personagem voador fica a 12 pixels do centro dele, então toca o chão quando position.y é maior que 306. Então, flyer.gd emite crashed.

O personagem voador, os canos e o temporizador são Pausable, então a pausa congela todos eles.

challenge icon

Desafio

Difícil
  1. Em pipe.gd, adicione signal hit. Conecte body_entered em _ready e emita hit quando um corpo entrar.
  2. Em flyer.gd, adicione signal crashed e emita-o quando position.y for maior que 306.
  3. Em main.gd, conecte o hit de cada cano e o crashed do personagem a _on_crash. Essa função exibe Game Over e pausa o jogo.

Experimente você mesmo

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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Projetos

Pratique por conta própria: Playground de Godot