הפעלה מחדש בלחיצת מקש
חלק מהיחידה חוקי המשחק במסלול ה-Godot של Coddy. שיעור 15 מתוך 29.
השורה הזו משליכה את הסצנה וטוענת אותה מחדש מהקובץ שלה:
get_tree().reload_current_scene()המשחק החדש מתחיל עם שלושה חיים, השחקן על הריבוע הירוק ו־Game Over מוסתר.
גם 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
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה חוקי המשחק
תרגלו בעצמכם: Godot אונליין