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.
Görev
OrtaKahramanı bıraktığında hızla durmasını sağla.
move_towardsatırınıelse:satırının altına koy.- Üstüne,
if direction == 0:satırının altına,move_towardilevelocity.xdeğerinifriction * deltakadar azaltarak0değ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
4Akıcı Hareket
Yavaş Yavaş HızlanSürtünmeHareket Yönüne DönEkran Sınırları İçinde TutHer İki Eksende Sınırla2CharacterBody2D
CharacterBody2DHız ile YürümeDuvarlar Seni DurdururHer Yöne YürümeDengeli Çapraz Hareket5Proje: Platform Oyunu Kahramanı
Kahraman: KoşKahraman: Zıpla3Yerçekimi ve Zıplama
Yerçekimiyle DüşYukarı ZıplaYalnızca YerdenKoş ve ZıplaDeğişken ZıplamaÇift ZıplamaKendi başına pratik yap: Godot playground