Menu
CoddyTech

הפעלה מחדש בלחיצת מקש

חלק מהיחידה חוקי המשחק במסלול ה-Godot של Coddy. שיעור 15 מתוך 29.

השורה הזאת משליכה את הסצנה וטוענת אותה מחדש מהקובץ שלה:

get_tree().reload_current_scene()

המשחק החדש מתחיל עם שלושה חיים, השחקן נמצא על הריבוע הירוק, ו־Game Over מוסתר.

גם Main מושהה, ולכן _process שלו לעולם לא מזהה את המקש. הגדירו את process_mode של Main עצמו ל־Node.PROCESS_MODE_ALWAYS. הילדים שלו יורשים את ההגדרה הזאת, למעט השחקן. הסצנה מגדירה את השחקן כ־Pausable, ולכן הוא עדיין נעצר.

טעינה מחדש לא מבטלת את השהיית המשחק. הגדירו get_tree().paused = false לפני הטעינה מחדש, אחרת המשחק החדש יתחיל כשהוא מושהה.

challenge icon

אתגר

קל

תנו לשחקן ללחוץ על E כדי לשחק שוב אחרי סיום המשחק.

  1. בתוך _ready(), הגדירו את process_mode של הצומת עצמו ל-Node.PROCESS_MODE_ALWAYS (בלי $).
  2. בתוך _process(), כש-lives הוא 0 והפעולה action נלחצה זה עתה, בטלו את השהיית המשחק ואז טענו מחדש את הסצנה.

לחצו על "שחק", אבדו שלושה חיים ולחצו על "בדיקה": משחק חדש מתחיל עם Lives: 3. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

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 iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה חוקי המשחק

תרגלו בעצמכם: Godot אונליין