تعرفنا في مقال سابق على المفاهيم الرئيسية لمحرك الألعاب جودو Godot، ورأينا أنّ اللعبة عبارة عن مجموعة من المَشاهد على شكل شجرة وأنّ كل مشهد هو شجرة من العقد بحد ذاته. في هذا الدرس، سنشرح المزيد حول العقد والمشاهد ونعلمك كيف يمكن أن تنُشئ أول مشهد في جودو بنفسك.
العقد
العقد هي الوحدات الأساسية لبناء لعبتك، فهي مثل المكونات في نموذج، وهناك عشرات الأنواع من العقد والتي يمكن أن تعرض صورة أو صوتًا أو كاميرا وغيرها الكثير من الأنواع.
تمتلك جميع العقد في جودو الخصائص التالية:
- اسم.
- خصائص قابلة للتحرير.
- تتلقى استدعاءات لتحديثها في كل إطار.
- يمكنك تطويرها بإضافة خصائص ودوال جديدة.
- يمكنك إضافتها إلى عقدة أخرى بصفة ابن.
الخاصية الأخيرة مهمة حيث تشكّل العقد مع بعضها شجرة وهي ميزة قوية لتنظيم المشاريع. ونظرًا لأن العقد المختلفة لها دوال مختلفة، فإن دمجها معًا ينتج عنه سلوك أكثر تعقيدًا حيث يمكنك بناء شخصية لعبة ثنائية الأبعاد تتبعها الكاميرا باستخدام عقدة CharacterBody2D
، وعقدة Sprite2D
، وعقدة Camera2D
، وعقدة CollisionShape2D
.
المَشاهد Scenes
عندما ترتّب العقد ضمن شجرة، نسمي هذا التركيب مشهدًا تمامًا مثل الشخصية الموضحة في الصورة التالية، وبمجرد حفظها، ستصبح المَشاهد كنوع جديد من العقد في المحرر، حيث يمكنك إضافتها بصفة ابن لعقد موجودة مسبقًا. وفي هذه الحالة، تظهر نسخة من المشهد كعقدة واحدة مع تفاصيلها الداخلية المخفية.
تسمح لك المَشاهد ببناء الشيفرة البرمجية للعبتك بالطريقة التي تريدها، كما يمكنك تكوين عقد لإنشاء أنواع مخصصة ومعقدة منها، مثل شخصية لعبة تركض وتقفز، مع شريط حياة Health bar، ومجموعة من الإعدادات التي تمكنك من التفاعل معها، وغيره الكثير.
يعدّ محرر الألعاب جودو في الأساس محرر مشاهد فهو يحتوي على العديد من الأدوات لتحرير المَشاهد ثنائية وثلاثية الأبعاد، بالإضافة إلى واجهات المستخدم. كما أن المشروع الذي يُنفذ باستخدام محرك جودو يمكن أن يحتوي على العديد من هذه المَشاهد حسب الحاجة. يتطلّب المحرك وجود مشهد واحد فقط كمشهد رئيسي لتطبيقك، وهو ذاته المشهد الذي يعرضه المحرك في البداية عند تشغيل اللعبة.
تتمتع المَشاهد - بالإضافة إلى عملها كعقد - بالخصائص التالية:
- لديها دائمًا عقدة جذر واحدة، مثل الشخصية في مثالنا.
- يمكنك حفظها على وسيط التخزين الخاص بك وتحميلها لاحقًا.
- يمكنك إنشاء عدد لا منتهي من النسخ للمشهد، ويمكنك أن تملك خمس أو عشر شخصيات في لعبتك، تم إنشاؤها من مشهد الشخصية الأساسي الخاص بك.
إنشاء أول مشهد لك
سنُنشئ أول مشهد بعقدة واحدة، ولتنفيذ ذلك، ستحتاج أولاً إلى إنشاء مشروع جديد. بعد فتح نافذة المشروع، سيظهر لك محرر فارغ.
تظهر عدة خيارات في مشهد فارغ، ومن قائمة "مشهد Scene" على اليسار لإضافة عقد جذر بسرعة. تضيف 2D Scene عقد Node2D
وتضيف 3D Scene عقد Node3D
، وتضيف User Interface عقد Control
.
هذه التعيينات اختيارية حسب الحاجة وليس بالضرورة اختيارها جميعها. يتيح لك الخيار Other Node تحديد أي عقدة لتكون هي العقدة الجذر. ويعادل خيار Other Node في مشهد فارغ خيار Add Child Node في أعلى الجزء الأيسر من قائمة "مشهد Scene"، والذي عادة ما يضيف عقدًا جديدة كأبناء للعقد التي تم اختيارها مسبقًا.
الآن سنضيف عقدة Label واحدة إلى المشهد. تتمثل وظيفتها برسم نص على الشاشة.
انقر فوق زر Add Child Node أو Other Node لإنشاء عقدة جذر.
ستفتح نافذة إنشاء العقد وتظهر قائمة طويلة من العقد المتوفرة.
حدد عقدة Label. يمكنك كتابة اسمها لتصفية القائمة.
انقر فوق عقدة Label لتحديدها ثم اضغط على زر "أنشئ Create" في أسفل النافذة.
يحدث الكثير في محرك الألعاب عند إضافة أول عقدة إلى المشهد، حيث يتغير المشهد إلى مساحة عمل ثنائية الأبعاد لأن Label هو عقدة من نوع 2D. يظهر Label مُحدَّدًا في الزاوية اليسرى العلوية من نافذة العرض، وتظهر العقدة في القائمة "مشهد Scene" على اليسار، كما تظهر عناصر العقد في قائمة "الفاحص Inspector" على اليمين.
تغيير عناصر العقد
الخطوة التالية هي تغيير عنصر "Text" في Label. دعونا نغيره إلى Hello World
انتقل إلى قائمة الفاحص Inspector على يمين نافذة العرض، ثم انقر داخل الحقل أسفل عنصر Text واكتب Hello World
سترى أن النص يرسم ضمن نافذة العرض أثناء كتابتك.
اقتباسملاحظة: يمكنك تعديل أي خاصية موجودة في Inspector كما فعلنا مع العقدة Text. لمرجع متكامل حول قسم Inspector اطّلع هنا.
يمكنك نقل عقدة Label في نافذة العرض عن طريق تحديد أداة النقل في شريط الأدوات.
عند تحديد عقدة Label، انقر واسحب في أي مكان ضمن نافذة العرض لنقلها إلى وسط العرض المحدد بالمستطيل.
تشغيل المشهد
أصبح كل شيء جاهزًا لتشغيل المشهد. اضغط على زر تشغيل المشهد في أعلى اليمين من الشاشة أو اضغط على F6
) Cmd+R
على نظام macOS).
ستظهر نافذة منبثقة تطلب منك حفظ المشهد، وهذا خيار ضروري لتشغيل المشهد. انقر على زر الحفظ في مستعرض الملفات لحفظه باسم label.tscn
اقتباسملاحظة: تسمح نافذة حفظ المشهد كما هو الحال مع نوافذ الملفات الأخرى في المحرر، بحفظ الملفات داخل المشروع فقط. يمثل مسار res
://
في أعلى النافذة مسار جذر للمشروع ويعبر عن مسار المورد
يجب أن يفتح التطبيق في نافذة جديدة ويعرض فيها النص Hello World على النحو التالي:
أغلق النافذة أو اضغط على F8
(cmd + .
على نظام macOS) لإيقاف تشغيل المشهد.
تعيين المشهد الرئيسي
استخدمنا زر التشغيل لتشغيل المشهد، ويوجد زر آخر بجانبه يسمح لك بتحديد وتشغيل المشهد الرئيسي للمشروع. يمكنك الضغط على F5
(Cmd + B
على نظام macOS) لفعل ذلك.
ستظهر نافذة منبثقة تطلب منك تحديد المشهد الرئيسي.
انقر على زر التحديد ثم انقر مرتين على label.tscn
في المربع الذي يظهر لك
يجب أن تشغل العرض التوضيحي مرة أخرى وعند تشغيلك للمشروع في المرات القادمة، سيستخدم جودو هذا المشهد كنقطة بداية.
اقتباسملاحظة: يحفظ المحرر مسار المشهد الرئيسي في ملف project.godot في مسار المشروع الذي صممته. وبالإمكان تعديل هذا الملف النصي مباشرة لتغيير إعدادات المشروع، كما يمكنك استخدام نافذة "المشروع Project" ثم "إعدادات المشروع Project Settings" لفعل ذلك.
الخلاصة
تناولنا في هذا المقال مفاهيم العقد Nodes والمشاهد Scenes في محرك الألعاب Godot ورأينا أن العقد هي الوحدات الأساسية التي تشكل مكونات اللعبة وقد تكون عبارة عن صورة أو صوت أو عنصر واجهة مستخدم، وأنها تتكون من خصائص قابلة للتعديل وتستجيب لاستدعاءات التحديث في كل إطار من إطارات اللعبة، كما استعرضنا كيفية تركيب العقد داخل شجرة لتشكيل مشهد يمثل كيانًا مستقلاً في اللعبة مثل شخصية أو مستوى ما. وفي المقال التالي، سنناقش مفهومًا رئيسيًا آخر في برمجة الألعاب باستخدام جودو وهو إنشاء نسخ من المشهد.
ترجمة - وبتصرف - لقسم Nodes and Scenes من توثيق جودو الرسمي.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.