Mirar hacia donde te mueves
Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 20 de 28.
El héroe está dibujado mirando hacia la derecha, y sigue mirando hacia la derecha cuando corre hacia la izquierda.
Todo lo que ves del héroe está en su hijo Look. Un valor de scale.x de -1 refleja un nodo y sus hijos de izquierda a derecha. Así que voltea Look:
if direction > 0:
$Look.scale.x = 1
if direction < 0:
$Look.scale.x = -1No voltees el CharacterBody2D en sí, para que su forma de colisión se quede como está. Si no se mantiene pulsada ninguna tecla, direction es 0 y no se ejecuta ninguno de los bloques if. El héroe sigue mirando hacia donde se movió por última vez.
Desafío
FácilHaz que el héroe mire hacia donde corre. Establece $Look.scale.x en -1 cuando corra hacia la izquierda y en 1 cuando corra hacia la derecha. Cuando se detenga, seguirá mirando en la misma dirección.
Pruébalo tú mismo
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
move_and_slide()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Entrada y movimiento
1Acciones de entrada
Presiona para moverteIzquierda y derechaUn ejeCuatro direccionesRecién presionadoEntrada no gestionada4Movimiento fluido
Acelerar poco a pocoFricciónMirar hacia donde te muevesLimitar al área de la pantallaLimitar ambos ejesPractica por tu cuenta: Playground de Godot