Conducir
Lección 1 de 20 del curso Juego de Godot: Circuito Neón de Coddy.
En este curso crearás un juego completo, una función por lección: un juego de carreras de neón visto desde arriba. Competirás contra tres coches rivales durante tres vueltas alrededor de una pista resplandeciente.
El proyecto incluye tres scripts para ti: car.gd para el coche, rival.gd para los rivales y race.gd para la carrera. Se proporcionan otras dos partes que no tendrás que tocar: la pista, que dibuja la carretera y responde preguntas sobre ella, y la escena. No necesitarás modificarlas.
Hoy el coche aprende a conducir. Tiene una velocity: cuántos píxeles se mueve cada segundo y en qué dirección. La dirección hacia la que apunta el coche se convierte en una dirección a partir de su rotation:
var forward := Vector2.RIGHT.rotated(rotation)Mientras mantienes pulsada la tecla Arriba, la velocidad aumenta en esa dirección a razón de accel por segundo. Input.get_action_strength vale 1.0 mientras la tecla está pulsada y 0.0 cuando no lo está:
var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * deltalimit_length mantiene la velocidad en max_speed o por debajo. Multiplicar por delta, los segundos transcurridos desde el último fotograma, mantiene la velocidad igual tanto en una pantalla rápida como en una lenta.
Desafío
Fácil- En
car.gd, reemplazapassen_physics_processpor las líneas de arriba. - Por último, haz que el escape brille mientras conduces:
$Exhaust.emitting = throttle > 0.0. - Pulsa «Jugar» y mantén pulsada la tecla de flecha arriba (o W).
Pruébalo tú mismo
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 las lecciones de Juego de Godot: Circuito Neón
Practica por tu cuenta: Playground de Godot