CharacterBody2D
Parte da seção Entrada e movimento do Journey de Godot da Coddy. Lição 7 de 28.
Um Node2D atravessa paredes. Um CharacterBody2D esbarra nas coisas. Na aba Cena, o Hero agora é um CharacterBody2D. Seu filho CollisionShape2D é um círculo, o tamanho sólido do herói. As paredes e a coluna também têm formas de colisão.
Um corpo tem uma velocity, um Vector2 em pixels por segundo. Defini-la não move nada. move_and_slide() move o corpo de acordo com sua velocidade durante um quadro e o para ao encontrar qualquer coisa sólida:
func _physics_process(delta):
velocity = Vector2(150, 0)
move_and_slide()Mova corpos em _physics_process, que é executado em sincronia com a física. move_and_slide() aplica o tempo do quadro; portanto, nunca multiplique velocity por delta.
Desafio
FácilFaça o herói se mover com sua velocidade.
- Em
_physics_process(), abaixo da linhavelocity, adicionemove_and_slide(). - Indente com uma tabulação, como na linha acima.
Pressione “Jogar”: o herói desliza para a direita a 150 pixels por segundo e para no pilar. Depois, pressione “Verificar”.
Experimente você mesmo
extends CharacterBody2D
func _physics_process(delta):
velocity = Vector2(150, 0)
Todas as lições de Entrada e movimento
2CharacterBody2D
CharacterBody2DAnde com velocidadeParedes impedem seu avançoAnde por toda parteDiagonais equilibradasPratique por conta própria: Playground de Godot