Menu
CoddyTech

Bir Tuşla Yeniden Başlat

Coddy'nin Godot Journey'sinin Oyun Kuralları bölümünün bir parçası. Ders 15 / 29.

Bu satır sahneyi kaldırır ve dosyasından yeniden yükler:

get_tree().reload_current_scene()

Yeni oyun üç canla, yeşil karedeki oyuncuyla ve gizli Game Over ekranıyla başlar.

Main de duraklatılmıştır, bu yüzden _process tuşu algılayamaz. Main düğümünün kendi process_mode değerini Node.PROCESS_MODE_ALWAYS olarak ayarla. Oyuncu hariç çocuk düğümler bu değeri devralır. Sahne, oyuncuyu Pausable olarak ayarlar, bu yüzden oyuncu yine de durur.

Yeniden yüklemek oyunun duraklatmasını kaldırmaz. Yeniden yüklemeden önce get_tree().paused = false olarak ayarla; aksi takdirde yeni oyun duraklatılmış olarak başlar.

challenge icon

Görev

Kolay

Oyun Bitti ekranından sonra oyuncunun yeniden oynamak için E tuşuna basmasını sağla.

  1. _ready() içinde bu düğümün kendi process_mode değerini Node.PROCESS_MODE_ALWAYS olarak ayarla ($ olmadan).
  2. _process() içinde, lives değeri 0 olduğunda ve action eylemine az önce basıldığında oyunun duraklatmasını kaldır, ardından sahneyi yeniden yükle.

“Oyna” düğmesine bas, üç canını kaybet ve E tuşuna bas: Lives: 3 ile yeni bir oyun başlar. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends Node2D

var lives = 3

func _ready():
	$HUD/Lives.text = "Lives: %d" % lives
	$Player.hurt.connect(_on_player_hurt)
	$Blink.timeout.connect(_on_blink_timeout)
	$Blink.process_mode = Node.PROCESS_MODE_ALWAYS

func _process(delta):
	pass

func _on_player_hurt():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives
	if lives == 0:
		$HUD/GameOver.visible = true
		$HUD/Hint.visible = true
		get_tree().paused = true

func _on_blink_timeout():
	if lives == 0:
		$HUD/GameOver.visible = not $HUD/GameOver.visible
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Oyun Kuralları bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground