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 = trueUm 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.
Desafio
Difícil- Em
pipe.gd, adicionesignal hit. Conectebody_enteredem_readye emitahitquando um corpo entrar. - Em
flyer.gd, adicionesignal crashede emita-o quandoposition.yfor maior que 306. - Em
main.gd, conecte ohitde cada cano e ocrasheddo personagem a_on_crash. Essa função exibeGame Overe 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)
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
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chave2Projeto: Jogo de Tiro com Asteroides
Gire a naveAcione o motor3Projeto: Flappy Flyer
Gravidade do FlyerFaça o Flyer bater as asasPratique por conta própria: Playground de Godot