CharacterBody2D - mgea/godot GitHub Wiki

Un nodo de tipo CharacterBody2D permite crear un personaje con propiedades de colisión y movimiento. Normalmente se usa para crear el player.

  • Node2D > CollisioIbject2D> PhysicsBody2D>CharacterBody2D

Otro objeto similar pero para objetos estáticos o NPC (non playable characters) es:

  • Node2D > CollisioIbject2D> PhysicsBody2D>StaticBody2D

Normalmente puede contener:

  • o bien un nodo con animaciones (de sprite) Ejemplo

Forma de colisión (ColisionShape)

Además, habrá que incluir una zona (rectabgular, ovalada, o forma libre) que defina la zona de colisión

Camara2D

Se puede asociar un nodo Camera2D para que la escena siga al personaje.

Video explicativo: https://www.youtube.com/watch?v=9q7sd1aBBBY

Movimiento

Se deben activar las siguientes combinaciones de teclado para mover sprite, em Proyecto>Configuración>Mapa de Entrada (activar buit-in actions)

Por último, en el script asociado al CharacterBody2D habrá que definir el movimiento en función de la velocidad y teclas pulsadas (4 direcciones).

extends CharacterBody2D

@export var speed = 400

func get_input():
	var input_direction = Input.get_vector("left", "right", "up", "down")
	velocity = input_direction * speed

func _physics_process(delta):
	get_input()
	move_and_slide()

  • move_and_slide() es una función de un CharacterBody2D que permite mover el objeto teniendo en cuenta las colisiones (zonas prohibidas)