Nada grita “juego en proceso” como un personaje que se desliza, flota o se traba contra una pared.

Por eso, el movimiento 2D es una de las primeras cosas que tienes que dominar en Godot si quieres que tu juego se sienta fluido, preciso y jugable.


🧠 ¿Qué necesitas para mover algo?

  1. Un nodo CharacterBody2D

  2. Un CollisionShape2D para evitar que atraviese todo

  3. Un sprite para que se vea bonito

  4. Un script que diga: “si presionan una tecla, ¡muévete!”


🛠️ Ejemplo básico:

extends CharacterBody2D

const SPEED = 200

const JUMP_FORCE = -400

const GRAVITY = 900

func _physics_process(delta):

velocity.y += GRAVITY * delta

if Input.is_action_pressed(“ui_right”):

velocity.x = SPEED

elif Input.is_action_pressed(“ui_left”):

velocity.x = -SPEED

else:

velocity.x = 0

if Input.is_action_just_pressed(“ui_up”) and is_on_floor():

velocity.y = JUMP_FORCE

move_and_slide()

Este código hace que tu personaje:

  • Se mueva a los lados

  • Salte

  • Caiga por gravedad

  • Y no atraviese el suelo (gracias al CollisionShape2D)


🎯 ¿Por qué usar move_and_slide()?

Porque te permite:

  • Moverte con velocidad y colisión

  • Deslizarte por superficies inclinadas

  • No hacer física desde cero (¡gracias, Godot!)

También puedes usar move_and_collide(), si quieres controlar el rebote manualmente.


🧩 Consejo de diseño:

  • Usa TileMap con colisión para las plataformas

  • Asegúrate que tu personaje tenga is_on_floor() para detectar saltos

  • No pongas el CollisionShape2D más grande que el sprite

  • Si tu personaje se mueve lento o vibra: revisa los valores de delta, gravedad y fricción