Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

Buat 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()
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