اعبر عشرة أنابيب للفوز
جزء من قسم المشاريع في رحلة 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، لذا يتجاهل الضغط على المفتاح أثناء إيقاف اللعبة مؤقتًا.
التحدي
متوسطافز عند اجتياز عشرة أنابيب، ثم العب مجددًا.
- عندما تصل النتيجة إلى
10، اعرضYou win!في$HUD/Messageوأوقف اللعبة مؤقتًا. - أثناء الإيقاف المؤقت، يؤدي الضغط على مفتاح المسافة (
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)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
3مشروع: الطائر المحلّق
جاذبية الطائراجعل الطائر يرفرفتدرّب بنفسك: Playground لـ Godot