Menu
CoddyTech

Accendere il motore

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 12 di 36.

Premi Su per accendere il motore e spingere l'astronave nella direzione in cui punta la sua prua. Vector2.UP è (0, -1). rotated(rotation) ruota quella freccia dello stesso angolo di rotazione dell'astronave:

if Input.is_action_pressed("move_up"):
	velocity += Vector2.UP.rotated(rotation) * THRUST * delta
position += velocity * delta

Il motore cambia la velocità, non la posizione. Quando lasci il tasto Su, l'astronave continua a fluttuare. Per fermarti, gira nella direzione opposta e spingi dall'altra parte.

L'astronave ha un nodo figlio Flame nascosto. Mostralo mentre il motore è acceso: $Flame.visible = Input.is_action_pressed("move_up").

challenge icon

Sfida

Medio

Fai in modo che il motore spinga la nave.

  1. Aggiungi const THRUST = 300.
  2. Mentre tieni premuto Su, aggiungi Vector2.UP.rotated(rotation) * THRUST * delta a velocity.
  3. Sposta la nave di velocity * delta a ogni fotogramma, che il tasto sia premuto o meno.
  4. Mostra $Flame solo mentre tieni premuto Su.

Premi «Gioca» e tieni premuto Su: la fiamma brucia e la nave continua a scivolare dopo che rilasci il tasto. Poi premi «Verifica».

Provalo tu

extends CharacterBody2D

const TURN_SPEED = 4.0

func _physics_process(delta):
	rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta

Tutte le lezioni di Progetti

Esercitati da solo: Playground Godot