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

الملفات الخارجية

جزء من قسم البرمجة كائنية التوجّه في رحلة GDScript على Coddy. الدرس 1 من 65.

تُقسَّم البرامج الحقيقية إلى عدة ملفات. كل ملف .gd هو نص برمجي، ويمكن لنص برمجي استخدام نص برمجي آخر.

اكتب class_name في أعلى النص البرمجي لمنحه اسمًا عامًا. يمكن بعد ذلك لكل نص برمجي آخر في المشروع استخدام هذا الاسم مباشرةً، دون سطر استيراد:

# greeter.gd
class_name Greeter
extends RefCounted

static func greet(player_name: String) -> String:
	return "Hello, " + player_name + "!"

تجعل static func الدالة قابلة للاستدعاء باستخدام اسم البرنامج النصي، Greeter.greet("Ada"). أما extends RefCounted فهو الصنف الأساسي البسيط للبرامج النصية التي ليست عُقدًا؛ وتشرح الدروس التالية ذلك.

# main.gd
extends Node

func _ready():
	print(Greeter.greet("Ada")) # Hello, Ada!

لا يزال البرنامج يبدأ في _ready() في main.gd. الملفات الأخرى لا تفعل سوى تعريف الأشياء التي يستخدمها main.gd.

يسمّي Godot الملفات بصيغة snake_case وclass_name بصيغة PascalCase: يوجد class_name Greeter في الملف greeter.gd. خصّص ملفًا واحدًا لكل صنف.

يمكن تحميل سكربت بدون class_name باستخدام مساره عبر preload():

const Helpers = preload("res://helpers.gd")

func _ready():
	print(Helpers.shout("hi")) # HI!
challenge icon

التحدي

سهل

اكتب الدالة الثابتة greet في greeter.gd. تأخذ اسم لاعب وتُرجع Hello, NAME!. عندما يكون الاسم فارغًا، تُرجع Hello, friend!.

يقرأ الكود المزوَّد عدد الأسماء التالية، ثم يطبع Greeter.greet() لكل اسم. بالنسبة إلى الاسمين Ada وسطر فارغ، يطبع:

Hello, Ada!
Hello, friend!

ضع كودك في greeter.gd. يحتوي main.gd على كود الإدخال/الإخراج المزوَّد، ولا يمكن تعديله.

جرّب بنفسك

extends Node

func _ready():
	# كود الإدخال/الإخراج المقدَّم: اتركه كما هو
	var count := int(OS.read_string_from_stdin())
	for i in count:
		print(Greeter.greet(OS.read_string_from_stdin()))
quiz iconاختبر نفسك

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

جميع دروس البرمجة كائنية التوجّه

تدرّب بنفسك: مترجم GDScript عبر الإنترنت