Menu
CoddyTech

CharacterBody2D

Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 7 de 28.

Un Node2D atraviesa las paredes. Un CharacterBody2D choca con las cosas. En la pestaña Escena, el Hero ahora es un CharacterBody2D. Su nodo hijo CollisionShape2D es un círculo, el tamaño sólido del héroe. Las paredes y el pilar también tienen formas de colisión.

Un cuerpo tiene una velocity, un Vector2 en píxeles por segundo. Asignarle un valor no mueve nada. move_and_slide() mueve el cuerpo según su velocidad durante un fotograma y lo detiene ante cualquier objeto sólido:

func _physics_process(delta):
	velocity = Vector2(150, 0)
	move_and_slide()

Mueve los cuerpos en _physics_process, que se ejecuta al ritmo de la física. move_and_slide() aplica el tiempo del fotograma, así que nunca multipliques velocity por delta.

challenge icon

Desafío

Fácil

Haz que el héroe se mueva según su velocidad.

  1. En _physics_process(), debajo de la línea velocity, añade move_and_slide().
  2. Indéntala con un tabulador, como la línea anterior.

Pulsa «Jugar»: el héroe se desliza hacia la derecha a 150 píxeles por segundo y se detiene en el pilar. Después, pulsa «Comprobar».

Pruébalo tú mismo

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

Todas las lecciones de Entrada y movimiento

Practica por tu cuenta: Playground de Godot