Enciende el motor
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 12 de 36.
La flecha hacia arriba enciende el motor y empuja la nave en la dirección hacia la que apunta su proa. Vector2.UP es (0, -1). rotated(rotation) gira esa flecha según cuánto haya girado la nave:
if Input.is_action_pressed("move_up"):
velocity += Vector2.UP.rotated(rotation) * THRUST * delta
position += velocity * deltaEl motor cambia la velocidad, no la posición. Cuando sueltas la flecha hacia arriba, la nave sigue deslizándose. Para detenerte, date la vuelta y acelera en la dirección opuesta.
La nave tiene un elemento secundario oculto llamado Flame. Muéstralo mientras el motor está encendido: $Flame.visible = Input.is_action_pressed("move_up").
Desafío
IntermedioHaz que el motor impulse la nave.
- Añade
const THRUST = 300. - Mientras mantienes pulsada la tecla de flecha arriba, añade
Vector2.UP.rotated(rotation) * THRUST * deltaavelocity. - Mueve la nave con
velocity * deltaen cada fotograma, tanto si mantienes pulsada la tecla como si no. - Muestra
$Flamesolo mientras mantienes pulsada la tecla de flecha arriba.
Pulsa «Jugar» y mantén pulsada la tecla de flecha arriba: la llama arde y la nave sigue deslizándose cuando la sueltas. Después, pulsa «Comprobar».
Pruébalo tú mismo
extends CharacterBody2D
const TURN_SPEED = 4.0
func _physics_process(delta):
rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
Todas las lecciones de Proyectos
2Proyecto: Disparador de asteroides
Gira la naveEnciende el motorPractica por tu cuenta: Playground de Godot