إعادة التشغيل عند ضغط مفتاح
جزء من قسم قواعد اللعبة في رحلة Godot على Coddy. الدرس 15 من 29.
يتخلّص هذا السطر من المشهد ويحمّله من جديد من ملفه:
get_tree().reload_current_scene()تبدأ اللعبة الجديدة بثلاث أرواح، واللاعب على المربع الأخضر، وشاشة «انتهت اللعبة» مخفية.
إنّ Main متوقّف مؤقتًا أيضًا، لذا لا يرصد _process المفتاح مطلقًا. اضبط process_mode الخاص بـ Main على Node.PROCESS_MODE_ALWAYS. ترث العناصر التابعة له هذا الإعداد، باستثناء اللاعب. يضبط المشهد اللاعب على وضع قابل للإيقاف المؤقت، لذا يظل متوقفًا.
لا يؤدي إعادة التحميل إلى إلغاء الإيقاف المؤقت للعبة. اضبط get_tree().paused = false قبل إعادة التحميل، وإلا ستبدأ اللعبة الجديدة وهي متوقفة مؤقتًا.
التحدي
سهلدع اللاعب يضغط على E للعب مجددًا بعد انتهاء اللعبة:
- في
_ready()، اضبطprocess_modeلهذه العقدة علىNode.PROCESS_MODE_ALWAYS. - في
_process()، عندما تكون قيمةlivesهي 0 ويكونactionقد ضُغط للتو، ألغِ إيقاف اللعبة مؤقتًا وأعِد تحميل المشهد.
جرّب بنفسك
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
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس قواعد اللعبة
تدرّب بنفسك: Playground لـ Godot