Menu
CoddyTech

Ekran Sınırları İçinde Tut

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

Sola doğru ilerle, kahraman ekrandan çıkar. clamp(value, low, high), bir sayıyı iki sınır arasında tutar. value bu değerin altındaysa low, üstündeyse high, aksi hâlde value değerini döndürür. clamp(700, 14, 626) sonucu 626'dır.

Hareket ettikten sonra konumu sınırla ve sonucu kaydet:

move_and_slide()
position.x = clamp(position.x, 14, 626)

position, kahramanın merkezidir ve kahraman 28 piksel genişliğindedir. Böylece merkezi, 640 piksel genişliğindeki ekranın her kenarından 14 piksel uzakta kalır ve kahramanın tamamı görünür.

challenge icon

Görev

Kolay

Kahramanın tamamını ekranda tut.

  1. move_and_slide() sonrasında position.x değerini clamp() ile ayarla.
  2. Değeri 14 ile 626 arasında sınırla.

“Oyna” düğmesine bas ve iki yana da koş: Kahraman tamamen ekranda kalacak şekilde kenarda 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")
	if direction == 0:
		velocity.x = move_toward(velocity.x, 0, friction * delta)
	else:
		velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
	if direction > 0:
		$Look.scale.x = 1
	if direction < 0:
		$Look.scale.x = -1
	move_and_slide()

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

Kendi başına pratik yap: Godot playground