Escolar Documentos
Profissional Documentos
Cultura Documentos
🐔🚗🚙
Godot Engine - Tutorial Freeway
💻
● Conteúdo:
🐔
○ Configuração do projeto
🏁
○ Criar a cena do Player
🎮
○ Criar a cena da Linha de Chegada
🚗🚙
○ Criar a cena do jogo principal
🏷️ 🔲
○ Criar a cena dos Carros
○ Criar a cena da HUD
● Configuração do projeto 💻
O Project Manager é a primeira janela que irá aparecer quando você abrir o Godot.
Nesta janela você pode ver uma lista de seus projetos. Você pode escolher um
projeto e clicar em “Run” para jogar um jogo já existente ou clicar em “Edit” para
trabalhar nele na Godot.
Para configurar o tamanho da janela, vá em “Project” > “Project Settings” > “Display”
> “Window”. Em “Size”, altere “Width” para 1280 e “Height” para 720. Em “Stretch”,
coloque “Mode” para 2d e “Aspect” para keep.
Para criar um script na cena do Player, clique com o botão direito no nó raiz
(Player) e clique em “Attach Script”. Escreva o código do Player, como no trecho de
código abaixo.
extends Area2D
var screen_size
var posicao_inicial = Vector2(640, 690)
signal pontua
func _ready():
screen_size = get_viewport_rect().size
func _process(delta):
if velocity.y > 0:
$Animacao.animation = "baixo"
else:
$Animacao.animation = "cima"
func _on_Player_body_entered(body):
if body.name == "LinhaChegada":
emit_signal("pontua")
else:
$Audio.play()
position = posicao_inicial
Adicione a cena Player como outro filho de Main. Para isso clique em “Instance
Child Scene” > “cenas/Player.tscn” > “Open”. Faça o mesmo processo para inserir a
cena LinhaChegada como filho de Main.
Clique no nó Colisao
(CollisionShape2D) e vá em “Shape” >
8
Anexe um script na cena Carros. Para isso, clique com o botão direito em Carros e
clique em “Attach Script”. Escreva o código da cena, como no trecho de código
abaixo.
extends RigidBody2D
func _ready():
var tipos_carros = $Animacao.frames.get_animation_names()
var carro = tipos_carros[randi() % tipos_carros.size()]
$Animacao.animation = carro
func _on_Notificador_screen_exited():
queue_free()
○ “Text” para 0
○ “Align” para center e “Valign” para center
○ “Rect” > “Size” > “x” para 100 e “y” para 60.
○ “Layout” > “Center Top”;
○ Para alterar a fonte vá em “Themes Override” > “Fonts” > “Font” (que
está Empty) > “New DynamicFont” > “Font” > “Font Data” > “Load” >
Selecione a fonte “assets/PressStart2P-Regular.ttf”;
○ “Themes Override” > “Fonts” > “Font” > “Settings” > “Size” altera o
tamanho da fonte para 32.
Clique com o botão direito no nó HUD > “Attach Script” e copie o seguinte trecho de
código abaixo. Atenção: Lembre-se que a declaração da função
“_on_Button_pressed” não é digitada e sim conectada.
extends CanvasLayer
signal reinicia
func _on_Button_pressed():
emit_signal("reinicia")
Clique “Add Child Node” > “AudioStreamPlayer” > “Create” e adicione 3 nós do tipo
e “AudioStreamPlayer” como filho de Main. Renomeie os nós para: AudioTema,
AudioPonto e AudioVitoria. Clique em AudioTema > “Stream” > “Load” >
“tema.wav”. Clique em AudioPonto > “Stream” > “Load” > “ponto.wav”. Clique em
AudioVitoria > “Stream” > “Load” > “ganhou.wav”.
Anexe um script na cena Main. Para isso, clique com o botão direito em Main e
clique em “Attach Script”.
Na cena Main, clique em Player > “Node” (na dock inspector) > “pontual()” >
“Connect” > “Main” > “Connect”. Isso conectará o sinal “pontua” que foi criado na
cena do Player.
12
Na cena Main, clique em HUD > “Node” (na dock inspector) > “reinicia()” > “Connect”
> “Main” > “Connect”. Isso conectará o sinal “reinicia” que foi criado na cena da HUD.
Copie o código da cena, como no trecho de código abaixo. OBS: Este código ainda
será incrementado.
extends Node
var score = 0
func _ready():
$AudioTema.play()
$HUD/Mensagem.text = ""
$HUD/Button.hide()
randomize()
func _on_TimerCarrosRapido_timeout():
func _on_TimerCarrosLento_timeout():
func _on_Player_pontua():
score += 1
func _on_HUD_reinicia():
score = 0
$Player.position = $Player.posicao_inicial
$AudioTema.play()
$TimerCarrosRapido.start()
$TimerCarrosLento.start()
$HUD/Mensagem.text = ""
$HUD/Placar.text = "0"
$HUD/Button.hide()
OBS: Lembre-se que as declarações das funções que começam com “_on_…”
devem ser conectadas.