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 nodo hijo Look. Un valor de scale.x igual a -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 propio CharacterBody2D, 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 if. El héroe sigue mirando en la última dirección en la que se movió.
Desafío
FácilHaz que el héroe mire hacia donde corre.
- Antes de
move_and_slide(), establece$Look.scale.xen1cuandodirection > 0. - Establécelo en
-1cuandodirection < 0.
Pulsa «Jugar» y corre hacia la izquierda: el héroe gira a la izquierda y sigue mirando hacia la izquierda cuando te detienes. Después, pulsa «Comprobar».
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()
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