Percepat Secara Bertahap
Termasuk bagian Input dan Pergerakan dalam perjalanan Godot di Coddy. Pelajaran 18 dari 28.
Hero mencapai kecepatan penuh dalam satu frame dan berhenti dalam satu frame. Gerakannya terasa kaku.
move_toward(from, to, step) menggerakkan angka from menuju to paling jauh sebesar step, tanpa melewatinya. move_toward(0, 220, 15) menghasilkan 15. Jika diulang setiap frame, nilainya menjadi 30, 45, dan seterusnya hingga 220.
Gunakan fungsi ini pada velocity.x, menuju kecepatan yang diminta oleh tombol:
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)acceleration adalah kecepatan yang bertambah setiap detik, jadi nilai ini dikalikan dengan delta. Dengan nilai 900, hero mencapai 220 dalam sekitar seperempat detik. Saat tidak ada tombol yang ditekan, targetnya adalah 0, jadi hero melambat hingga berhenti.
Tantangan
SedangBuat hero mempercepat dan melambat dengan mulus. Atur velocity.x menggunakan move_toward, menuju direction * speed, sebesar acceleration * delta setiap frame.
Coba sendiri
extends CharacterBody2D
var speed = 220
var acceleration = 900
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocity
velocity.x = Input.get_axis("move_left", "move_right") * speed
move_and_slide()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input dan Pergerakan
1Aksi input
Tekan untuk BergerakKiri dan KananSatu SumbuEmpat ArahBaru DitekanInput yang Tidak Ditangani4Gerakan Halus
Percepat Secara BertahapGesekanHadap ke Arah GerakanmuBatasi pada LayarBatasi Kedua SumbuLatihan sendiri: Playground Godot