Bata nos canos
Parte da seção Projetos do Journey de Godot da Coddy. Lição 26 de 36.
Atingir um cano ou 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 é uma 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 hit de cada novo cano antes de adicioná-lo.
O chão. Seu topo fica em y = 318. A borda do personagem voador fica a 12 pixels do meio, então ele toca o chão quando position.y passa de 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ícilEncerre o jogo ao colidir.
- Em
pipe.gd, adicionesignal hit, conectebody_enteredem_readye emitahitquando um corpo entrar. - Em
flyer.gd, adicionesignal crashede emita-o quandoposition.yfor maior que306. - Em
main.gd, conectehitde cada cano ecrasheddo personagem a_on_crash, que exibeGame Overe pausa o jogo.
Pressione “Jogar” e caia: Game Over será exibido. Em seguida, pressione “Verificar”.
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)
Todas as lições de Projetos
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chave3Projeto: Flappy Flyer
Gravidade do FlyerFaça o Flyer bater as asasPratique por conta própria: Playground de Godot