Menu
CoddyTech

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 = -1

No 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ó.

challenge icon

Desafío

Fácil

Haz que el héroe mire hacia donde corre.

  1. Antes de move_and_slide(), establece $Look.scale.x en 1 cuando direction > 0.
  2. Establécelo en -1 cuando direction < 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

Practica por tu cuenta: Playground de Godot