الاصطدام بالأنابيب
جزء من قسم المشاريع في رحلة Godot على Coddy. الدرس 23 من 33.
يؤدي الاصطدام بأنبوب أو بالأرض إلى إنهاء اللعبة. وكلاهما يستدعي دالة واحدة في main.gd:
func _on_crash():
$HUD/Message.text = "Game Over"
get_tree().paused = trueالأنبوب. الأنبوب عبارة عن Area2D يتكوّن من شكلين، النصف العلوي والنصف السفلي. الفجوة بلا شكل. في pipe.gd، اربط body_entered وأطلق إشارة hit. يربط main.gd إشارة hit لكل أنبوب جديد قبل إضافته.
الأرض. يقع سطحها العلوي عند y = 318. تبعد حافة الطائر 12 بكسل عن منتصفه، لذا يلامس الأرض عندما تتجاوز position.y القيمة 306. عندئذٍ، يطلق flyer.gd الإشارة crashed.
الطائر والأنابيب والمؤقّت قابلة للإيقاف المؤقت، لذا يجمّدها الإيقاف المؤقت جميعًا.
التحدي
صعب- في
pipe.gd، أضفsignal hit. اربطbody_enteredفي_readyوأصدرhitعند دخول جسم. - في
flyer.gd، أضفsignal crashedوأصدره عندما تتجاوزposition.yالقيمة 306. - في
main.gd، اربطhitلكل أنبوب وcrashedللطائر بـ_on_crash. تعرض هذه الدالةGame Overوتوقف اللعبة مؤقتًا.
جرّب بنفسك
extends Node2D
const PIPE = preload("res://pipe.tscn")
func _ready():
$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
func _on_pipe_timer_timeout():
var pipe = PIPE.instantiate()
pipe.position = Vector2(700, randf_range(100, 250))
$Pipes.add_child(pipe)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
2مشروع: مطلق النار على الكويكبات
أدر السفينةأشعل المحرك3مشروع: الطائر المحلّق
جاذبية الطائراجعل الطائر يرفرفتدرّب بنفسك: Playground لـ Godot