Menu
CoddyTech

Dirigir

Lição 1 de 20 do curso Jogo na Godot: Circuito Neon da Coddy.

Neste curso, você vai criar um jogo completo, um recurso por aula: um jogo de corrida neon visto de cima. Você vai competir contra três carros rivais durante três voltas em uma pista iluminada.

O projeto tem três scripts para você: car.gd no carro, rival.gd para os rivais e race.gd para a corrida. Outras duas partes já são fornecidas e ficam ocultas: a pista, que desenha a estrada e responde a perguntas sobre ela, e a cena. Você não precisará alterá-las.

Hoje, o carro aprende a dirigir. Ele mantém uma velocity: quantos pixels se move por segundo e em que direção. A direção para a qual o carro aponta é a rotation convertida em uma direção:

var forward := Vector2.RIGHT.rotated(rotation)

Enquanto a tecla Up estiver pressionada, a velocidade aumenta nessa direção em accel por segundo. Input.get_action_strength vale 1.0 enquanto a tecla está pressionada e 0.0 quando não está:

var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * delta

limit_length mantém a velocidade em max_speed ou abaixo. Multiplicar por delta, o tempo em segundos desde o último quadro, mantém a velocidade igual tanto em uma tela rápida quanto em uma lenta.

challenge icon

Desafio

Fácil
  1. Em car.gd, substitua pass em _physics_process pelas linhas acima.
  2. Por último, faça o escapamento brilhar enquanto você dirige: $Exhaust.emitting = throttle > 0.0.
  3. Pressione “Jogar” e mantenha pressionada a tecla de seta para cima (ou W).

Experimente você mesmo

extends Node2D

@export var accel := 260.0
@export var max_speed := 200.0

var velocity := Vector2.ZERO


func _physics_process(delta: float) -> void:
	pass  # drive here

Todas as lições de Jogo na Godot: Circuito Neon

Pratique por conta própria: Playground de Godot