Kaçış: Tekrar Oyna
Coddy'nin Godot Journey'sinin Oyun Kuralları bölümünün bir parçası. Ders 29 / 29.
Son adım, oyuncunun Oyun Bitti ekranından sonra tekrar oynamak için E tuşuna basmasını sağlar.
Bunu dikenli odada yaptın. Main'in process_mode değerini Node.PROCESS_MODE_ALWAYS olarak ayarla; böylece oyun duraklatıldığında da _process çalışır. Oyuncu, her iki zamanlayıcı ve tüm bloklar kendi sahnelerinde Duraklatılabilir olarak ayarlandığından durmaya devam eder. Tuşa basıldığında duraklatmayı kaldır ve sahneyi yeniden yükle:
func _process(delta):
if lives == 0 and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Yeniden yükleme tüm blokları, puanı ve canları sıfırlar. Ayrıca Oyun Bitti ekranında Hint etiketini göster ki oyuncu hangi tuşa basacağını bilsin.
Görev
Zor_ready()içinde bu düğümünprocess_modedeğeriniNode.PROCESS_MODE_ALWAYSolarak ayarla.- Oyun Bittiğinde,
$HUD/Hintöğesini de göster. _process()ekle.livesdeğeri 0 olduğunda veactiontuşuna az önce basıldığında oyunun duraklatmasını kaldır ve sahneyi yeniden yükle.
Kendin dene
extends Node2D
var block_scene = preload("res://block.tscn")
var score = 0
var lives = 3
func _ready():
$HUD/Score.text = "Score: %d" % score
$HUD/Lives.text = "Lives: %d" % lives
$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)
$ScoreTimer.timeout.connect(_on_score_timer_timeout)
$Player.hurt.connect(_on_player_hurt)
func _on_spawn_timer_timeout():
var block = block_scene.instantiate()
block.position = Vector2(randf_range(40, 600), -30)
add_child(block)
func _on_score_timer_timeout():
score += 1
$HUD/Score.text = "Score: %d" % score
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/GameOver.visible = true
get_tree().paused = true
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