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.
Desafío
FácilHaz que el héroe se mueva según su velocidad.
- En
_physics_process(), debajo de la líneavelocity, añademove_and_slide(). - 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
2CharacterBody2D
CharacterBody2DCamina con velocidadLas paredes te detienenCamina por todas partesDiagonales equilibradas5Proyecto: Héroe de plataformas
Héroe: correrHéroe: saltarPractica por tu cuenta: Playground de Godot