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. Hiçbir tuşa basılı tutulmadığında yavaşlamaya sürtünme denir.

Durmak için farklı bir sayı kullanmak için kodda iki yol gerekir. else, if ifadesine ikinci bir yol sağlar 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 = bir değişkene değer atar. direction == 0, hiçbir tuşa basılı tutulmadığında true olur.

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

challenge icon

Görev

Orta

Kahramanı bıraktığında hızla durmasını sağla.

  1. move_toward satırını else: satırının altına koy.
  2. Üstüne, if direction == 0: satırının altına, move_toward ile velocity.x değerini friction * delta kadar azaltarak 0 değerine düşür.

“Oyna” düğmesine bas, hareket et ve bırak: kahraman biraz kayar, sonra durur. Ardından “Kontrol et” düğmesine bas.

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

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

Kendi başına pratik yap: Godot playground