Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

Buat 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()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Input dan Pergerakan

Latihan sendiri: Playground Godot