Menu
CoddyTech

עשרה צינורות לניצחון

חלק מהיחידה פרויקטים במסלול ה-Godot של Coddy. שיעור 28 מתוך 36.

השחקן יכול להפסיד, אבל עדיין לא לנצח. כשהניקוד מגיע ל־10, הצג You win! והשהה את המשחק. בדוק זאת במקום שבו הניקוד עולה:

if score == 10:
	$HUD/Message.text = "You win!"
	get_tree().paused = true

לבסוף, אפשר לשחק שוב. כשהמשחק מושהה, מקש הרווח טוען מחדש את הסצנה. Main מוגדר כ־Always, ולכן _process שלו עדיין פועל:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("jump"):
		get_tree().paused = false
		get_tree().reload_current_scene()

מקש הרווח משמש גם כמקש הנפנוף. האובייקט המעופף מוגדר כ־Pausable, ולכן הוא מתעלם מהלחיצה בזמן שהמשחק מושהה.

challenge icon

אתגר

בינוני

נצחו בעשרה צינורות ושחקו שוב.

  1. כשהניקוד מגיע ל־10, הציגו You win! ב־$HUD/Message והשהו את המשחק.
  2. כשהמשחק מושהה, מקש הרווח (jump) מבטל את ההשהיה וטוען מחדש את הסצנה.

לחצו על "שחק" ועברו דרך עשרה צינורות: ההודעה You win! תופיע. לחצו על מקש הרווח כדי להתחיל שוב. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

extends Node2D

const PIPE = preload("res://pipe.tscn")

var score = 0

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
	$Flyer.crashed.connect(_on_crash)
	$HUD/Score.text = "0"

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	pipe.hit.connect(_on_crash)
	pipe.scored.connect(_on_scored)
	$Pipes.add_child(pipe)

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

func _on_scored():
	score += 1
	$HUD/Score.text = str(score)
quiz iconבחנו את עצמכם

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

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

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