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:
- una sola imagen, Ejemplo
- 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)