Diagonal yang Seimbang
Termasuk bagian Input dan Pergerakan dalam perjalanan Godot di Coddy. Pelajaran 11 dari 28.
Hero di pelajaran sebelumnya bergerak terlalu cepat secara diagonal. Arah atas dan kanan menghasilkan kecepatan Vector2(200, -200). Panjang vektor itu sekitar 283 piksel, bukan 200.
.normalized() mempertahankan arah vektor dan membuat panjangnya tepat 1. Kalikan dengan kecepatan:
var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()Dengan begitu, setiap arah bergerak dengan kecepatan 200 piksel per detik. Vector2(0, 0) tetap nol setelah dinormalisasi, jadi hero berhenti.
Input.get_vector() sudah menghasilkan arah dengan panjang maksimal 1. velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed juga menghasilkan gerakan diagonal yang seimbang.
Tantangan
SedangBuat hero bergerak dengan kecepatan 200 piksel per detik ke segala arah, termasuk diagonal. Gunakan .normalized() pada arah Vector2, atau gunakan Input.get_vector().
Coba sendiri
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
velocity.x = Input.get_axis("move_left", "move_right") * speed
velocity.y = Input.get_axis("move_up", "move_down") * speed
move_and_slide()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input dan Pergerakan
2CharacterBody2D
CharacterBody2DBergerak dengan KecepatanDinding MenghentikanmuBergerak ke Mana SajaDiagonal yang SeimbangLatihan sendiri: Playground Godot