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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المشاريع

تدرّب بنفسك: Playground لـ Godot