Menu
CoddyTech

Borulara Çarp

Coddy'nin Godot Journey'sinin Projeler bölümünün bir parçası. Ders 26 / 36.

Bir boruya ya da zemine çarpmak oyunu bitirmelidir. Her ikisi de main.gd içindeki tek bir işleve yönlendirir:

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

Bir boru. Boru, üst ve alt yarılar olmak üzere iki şekle sahip bir Area2D'dir. Boşlukta şekil yoktur. pipe.gd içinde body_entered sinyalini bağlayıp bir hit sinyali gönderin. main.gd, her yeni boruyu eklemeden önce onun hit sinyalini bağlar.

Zemin. Zeminin üst kısmı y = 318 konumundadır. Uçanın kenarı orta noktasından 12 piksel uzaktadır; bu nedenle position.y değeri 306'yı aştığında zemine dokunur. Ardından flyer.gd, crashed sinyalini gönderir.

Uçan karakter, borular ve zamanlayıcı duraklatılabilir; dolayısıyla duraklatma hepsini dondurur.

challenge icon

Görev

Zor

Çarpışma olduğunda oyunu bitir.

  1. pipe.gd içinde signal hit ekle, _ready içinde body_entered sinyalini bağla ve bir cisim girdiğinde hit sinyalini gönder.
  2. flyer.gd içinde signal crashed ekle ve position.y değeri 306 değerinden büyük olduğunda bu sinyali gönder.
  3. main.gd içinde her borunun hit sinyalini ve uçucunun crashed sinyalini, Game Over mesajını gösterip oyunu duraklatan _on_crash işlevine bağla.

“Oyna” düğmesine bas ve düş: Game Over görünür. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends Node2D

const PIPE = preload("res://pipe.tscn")

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	$Pipes.add_child(pipe)

Projeler bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground