Menu
CoddyTech
flag He iconעבריתdown icon

התחמקות: שחקו שוב

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

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

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

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

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

challenge icon

אתגר

קשה
  1. בתוך _ready(), הגדר את process_mode של הצומת הזה ל־Node.PROCESS_MODE_ALWAYS.
  2. במסך Game Over, הצג גם את $HUD/Hint.
  3. הוסף את _process(). כאשר lives הוא 0 ורק עכשיו נלחץ action, בטל את השהיית המשחק וטען מחדש את הסצנה.

נסו בעצמכם

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

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

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

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