Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Faça o herói se mover com sua velocidade.

  1. Em _physics_process(), abaixo da linha velocity, adicione move_and_slide().
  2. 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

Pratique por conta própria: Playground de Godot