Menu
CoddyTech

Değişken Zıplama

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

Çoğu platform oyununda, düğmeye kısa süre basmak küçük bir sıçrama, basılı tutmak ise tam bir zıplama sağlar.

Bunu yapmak için, düğme bırakıldığında zıplamayı kes. Input.is_action_just_released("jump"), tuşun bırakıldığı tek karede true olur. Kahraman o sırada hâlâ yükseliyorsa, yukarı yönlü hızını yarıya indir:

if Input.is_action_just_released("jump") and velocity.y < 0:
	velocity.y = velocity.y / 2

velocity.y < 0, kahramanın hâlâ yükseldiği anlamına gelir. Bu koşul olmadan, aşağı inerken tuşu bırakmak düşüşü yavaşlatır.

Zıplamanın tepe noktasını geçene kadar tuşu basılı tutarsan, zıplama kesilmez.

challenge icon

Görev

Orta

Zıplama düğmesine kısa süre basarak küçük bir sıçrama yap.

  1. Zıplama işleminin if koşulundan sonra, Input.is_action_just_released("jump") ve velocity.y < 0 için bir if koşulu ekle.
  2. Bu koşulun içinde velocity.y değerini yarıya indir.

“Oyna” düğmesine bas: Space tuşuna kısa süre basmak küçük bir sıçrama yapar, tuşu basılı tutmaksa tam zıplama sağlar. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends CharacterBody2D

var speed = 220
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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

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

Kendi başına pratik yap: Godot playground