Las paredes te detienen
Parte de la sección Entrada y movimiento del Journey de Godot de Coddy. Lección 9 de 28.
Las paredes y el pilar son nodos StaticBody2D. Un cuerpo estático nunca se mueve. Cada uno tiene un CollisionShape2D para su forma sólida y un ColorRect para dibujarlo.
Solo move_and_slide() comprueba si hay paredes. Cambiar position mueve el cuerpo sin comprobarlo, así que atraviesa las paredes:
position.x += direction * speed * delta # atraviesa paredes
velocity.x = direction * speed # se detiene al chocar con paredes
move_and_slide()El texto que aparece después de # es un comentario. Godot lo omite.
Un cuerpo que choca contra una pared en ángulo conserva la parte de su movimiento que va a lo largo de la pared. Se desliza en lugar de quedarse atascado, de ahí el nombre move_and_slide().
Desafío
FácilHaz que las paredes detengan al héroe.
- Reemplaza la línea
position.xpor una que establezcavelocity.xendirection * speed, sindelta. - Debajo, llama a
move_and_slide().
Presiona «Jugar» y camina en ambas direcciones: el pilar y la pared detienen al héroe. Después, presiona «Comprobar».
Pruébalo tú mismo
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var direction = Input.get_axis("move_left", "move_right")
position.x += direction * speed * delta
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