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.
Görev
KolayOyun Bitti ekranından sonra oyuncunun yeniden oynamak için E tuşuna basmasını sağla.
_ready()içinde bu düğümün kendiprocess_modedeğeriniNode.PROCESS_MODE_ALWAYSolarak ayarla ($olmadan)._process()içinde,livesdeğeri 0 olduğunda veactioneylemine 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
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