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.
Görev
KolayKahramanın tamamını ekranda tut.
move_and_slide()sonrasındaposition.xdeğeriniclamp()ile ayarla.- Değeri
14ile626arası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
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