Menu
CoddyTech

Sürtünme

Coddy'nin Godot Journey'sinin Girdi ve Hareket bölümünün bir parçası. Ders 19 / 28.

Çoğu oyun karakteri, hızlanmaya başladığından daha hızlı durur. Tuşa basılı tutulmadığında yavaşlamaya sürtünme denir.

Durmak için farklı bir sayı kullanmak üzere kodun iki yolu olması gerekir. else, if ifadesine ikinci bir yol ekler ve bu iki yoldan yalnızca biri çalışır:

if direction == 0:
	velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

==, iki değerin eşit olup olmadığını kontrol eder. Tek bir = değişkene değer atar. Tuşa basılı tutulmadığında direction == 0 doğru olur.

300 gibi küçük bir friction değeri, buz üzerindeymiş gibi kaydırır. 2400 gibi büyük bir değer ise birkaç karede durdurur.

challenge icon

Görev

Orta

Karakterin hızlıca durmasını sağla. Hiçbir tuş basılı değilken, her karede friction * delta kadar azaltarak velocity.x değerini 0’a düşür. Bir tuş basılıyken acceleration ile hızlanmaya devam et.

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Girdi ve Hareket bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground