Menu
CoddyTech
flag Ar iconالعربيةdown icon

الاصطدام بالأنابيب

جزء من قسم المشاريع في رحلة 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.

الطائر والأنابيب والمؤقّت قابلة للإيقاف المؤقت، لذا يجمّدها الإيقاف المؤقت جميعًا.

challenge icon

التحدي

صعب
  1. في pipe.gd، أضف signal hit. اربط body_entered في _ready وأصدر hit عند دخول جسم.
  2. في flyer.gd، أضف signal crashed وأصدره عندما تتجاوز position.y القيمة 306.
  3. في 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)
quiz iconاختبر نفسك

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

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

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