Gesekan
Termasuk bagian Input dan Pergerakan dalam perjalanan Godot di Coddy. Pelajaran 19 dari 28.
Sebagian besar karakter game berhenti lebih cepat daripada saat mulai bergerak. Perlambatan saat tidak ada tombol yang ditekan disebut gesekan.
Untuk menggunakan angka berbeda saat berhenti, kode memerlukan dua jalur. else memberi if jalur kedua, dan hanya satu dari keduanya yang dijalankan:
if direction == 0:
velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)== memeriksa apakah dua nilai sama. Satu = menetapkan nilai ke variabel. direction == 0 bernilai benar saat tidak ada tombol yang ditekan.
Nilai friction yang kecil, seperti 300, membuat karakter meluncur seperti di atas es. Nilai yang besar, seperti 2400, menghentikannya dalam beberapa frame.
Tantangan
SedangBuat hero berhenti dengan cepat. Saat tidak ada tombol yang ditekan, perlambat velocity.x hingga 0 sebesar friction * delta setiap frame. Saat tombol ditekan, terus tingkatkan kecepatan sebesar acceleration.
Coba sendiri
extends CharacterBody2D
var speed = 220
var acceleration = 900
var friction = 2400
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
var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
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