اول لعبة لك بالمحرك#4 الـMenu و اضافة اللاعب

الـMenu, واجهة اللعبة, الواجهة الرئيسية للعبة
كلها اسماء لنفس المشهد
المشهد الذي فيه زر start واسم اللعبة

تقريبا تستطيع ان تقول ان هذا هو الدرس الاخير في الدورة
حيث سنقوم باضافة مشهد اللاعب للعبة
وسنقوم بصناعة مشهد جديد فيه زر start واسم اللعبة خاصتنا
مع اضافة عداد النقاط
ولكن في الدرس القادم سوف نقوم باعداد بعض المؤثرات علي اللعبة نفسها
مثل اضافة الخلفية ووضع الاصوات مع التأثيرات الخاصة بتحرك اللاعب

الدرس السابق : اول لعبة لك بالمحرك#3 الاعداء والمشهد الرئيسي

قبل ان نبدا اريد فقط ان اوضح الفكرة التي نريدها
1- يقوم المستخدم بتشغيل اللعبة
2- تظهر الشاشة الرئيسية للعبة فيها عنوان(اسم) اللعبة في المنتصف وزر start في الاسفل وعداد النقط علي صفر في الاعلي
3- عندما يضغط المستخدم علي زر start سيتغير عنوان اللعبة الي ready وبعد ثانيتين تبدا اللعبة وتختفي الكلمة ويختفي زر start ويظهر اللاعب
4- شخصية اللاعب تكون في منتصف الشاشة ويبدا الاعداء في الدخول الي الشاشة
5- المستخدم سيحاول الهرب من الاعداء بينما في الاعلي يكون عداد النقاط يزداد بمقدار 1 كل ثانية
6- عند تصادم اللاعب مع الاعداء تظهر كلمة ready مجددا ولكن هذه المرة تكون game over
7- بعد ثانيتين يظهر زر start ويظهر عنوان(اسم) اللعبة مجددا وعداد النقاط بنقاط اخر مرة تم لعب اللعبة فيها
تمام مثل الصورة المتحركة الخاصة بالتدوينة

ايضا في هذه التدوينة سنقوم بالانتقال بين المشاهد من اجل بعض التعديلات علي السكربت
لذلك قم بفتح جميع المشاهد التي صنعناها في الدروس السابقة

في بداية اللعبة نريد من اللاعب ان يكون خفيا لا يظهر الا بعد الضغط علي زر start
ونريده ان يكون في منتصف نافذة اللعبة
لذلك لنقم في البداية باضافة اللاعب الي المشهد الرئيسي خاصتنا (المشهد Main)
قم بفتح المشهد Main
في مجموعة scene ستجد علامة مثل السلسلة قم بتحديد عقدة الاب Main ثم اضغط علي تلك العلامة
بعدها اختر ملف مشهد اللاعب Player
add new child.PNGبهذه الطريقة سوف يظهر اللاعب في المشهد الرئيسي
وفي الاغلب فانه سيكون في احداثيات (0,0)
الان لنجعل اللاعب مخفي عند بداية اللعبة
بجانب العقدة الخاصة باللاعب Player ستجد علامة السكربت
قم بالضغط عليها لتحويلك الي السكربت الخاص باللاعب
player scriptوقم باضافة الامر hide داخل الدالة ready بهذه الطريقة عن بداية اللعبة سيختفي اللاعب
*(تذكر ان السطر الاول موجود منذ الدرس الخاص باللاعب)
hide playerالان قم باضافة العقدة Position2D للعقدة Main وقم بتسميتها StartPosition
حيث فائدتها الوحيدة هي الحصول علي احداثيات معينة في مكان معين
ونحن نريدها للحصول علي احداثيات منتصف الشاشة ووضع شخصية اللاعب فيها
قم بتحديد العقدة StartPosition وفي الـInspector ستجد الخاصية position
قم بجعلها (320, 240) بدلا من (0, 0)
لان هذه هي احداثيات منتصف الشاشة
حاليا نريد عند الضغط علي زر start نغير احداثيات اللاعب من (0, 0) الي احداثيات عقدة StartPosition
لذلك لنقم باعداد واجهة اللعبة

مشهد HUD

HUD اختصار لكلمة “heads-up display” والتي تعني العرض الرئيسي او بمعني اخر
الشاشة الرئيسية
قم بعمل مشهد جديد
واضف اليه هذه العقد بنفس الشكل
*ملحوظة العقدة Label2 هي في الاصل عقدة Label ولكن اسمها تغير نظرا لوجود نفس الاسم من قبل
hud treeالعقدة CanvasLayer
عقدة يتم استخدامها لترتيب العقد بداخلها
ولكنها تعتبر كورقة ومرسوم عليها اماكن العقد الاخري
ويمكن تحديد تلك “الورقة” اما اعلي بقية المشاهد او اسف المشاهد
لذلك فهي مفيدة للتاكد من ان الواجهة الرئيسية للعبة هي فوق كل المشاهد

العقدة Label والعقدة button
العقدة label هي لعرض نص داخل اللعبة اي ما كان ويمكن التعديل علي شكل ذلك النص
والعقدة button هي مجرد زر لا يمكن تغير شكله (هناك عقدة اخري للزر يمكن تغير شكلها)
ولكن الافضل استخدام هذه العقدة الان

الان قم بتسمية العقد كالتالي
CanvasLayer >>          HUD
Label >>     ScoreLabel سوف نستخدمها لعرض النقاط
Label2 >>   MessageLabel سوف نستخدمها لعنوان اللعبة ورسائل (ready, game over)
Button >>     StartButton سوف يكون زر ابدء الخاص باللعبة
Timer >>   MessageTimer سوف نستخدمه للوقت ما بين بدء (او انتهاء) اللعبة

العقد الخضراء (ScoreLabel, MessageLabel, StartButton) تسمي بعقد الـControl
وعقد الـControl اغلبها (هذا ان لم يكن كلها) تستخدم في عمل واجهات الالعاب
واغلبهم لديهم نفس الخواص
منها الاداة Layout التي تظهر عند تحديد احد تلك العقد
layout
وهي اداة تقوم بتحديد مكان العقدة بالنسبة لعقدة الاب
وبما ان عقدة الاب HUD مساحتها هي نفس مساحة شاشة اللعبة
فان هذه الخاصية ستقوم بتحديد موقع العقدة علي شاشة اللعبة

ايضا هناك خاصيتين مهمتين في هذا الشرح مشتركة بين الثلاثة عقد تلك في الـInspector وهي
1- خاصية الـtext حيث تقوم بتغير النص الموجود داخل العقدة
2- الخاصية Font الموجودة داخل “Custom Fonts” التي تقوم بتغير نوعية الخط وحجمه
قم بتغير الـtext الخاصة بالعقد كالتالي
ScoreLabel >>   text =             0
MessageLabel >>   text = Dodge the Creeps!
StartButton >>   text =          start
وفي عقد الـLabel ستجد هذه الخواص قم بتعديلها كما هو موضح في الصورةalign centerوفي عقدة StartButton ستجد Align فقط قم بجعلها هي الاخري Center
الان لنقم باعداد الخط وحجمه
اختر احد العقد الثلاثة وقم بالتالي
Custom Fonts.gifاول شئ قم بتحديد DynamicFont داخل الخاصية Font
ثم اضغط عليها ليتم تحويلك الي خصائص الخط
عند Font Data قم باختيار Lode من اجل وضع الخط المناسب
بعض الضغط علي Lode ستجد انه تم فتح واجهة من اجل اختيار
ملف الخط
ستجد الملف في مجلد fonts داخل مجلد
مرفقات اللعبة dodge_assets
ستجد ان ملف الخط اسمه “Sukar-Black.ttf”
او تستطيع تنزيل الخط المناسب لك والافضل ان يكون بامتداد ttf
عند Size قم بتحديد حجم الخط المناسب لك
وقم بنفس الخطوات بالنسبة للعقد الاخري

 

 

 

 

 

 

بعد تحديد حجم الخط المناسب لنذهب الي الخطوة التي بعدها
وهي تحديد اماكن العقد علي المشهد الحالي
كما قلت من قبل العقد التي في الاغلب لونها اخضر والتي تسمي عقد الـControl
عند تحديدها تظهر الاداة layout في شريط الادوات والتي تمكنك من تحديد مكان العقدة بسهولة
وايضا قلت ان بهم خواص متشابهة في الـInspector
لذلك قم بالتعديل علي هذه العقد بالشكل التالي
حيث في الخانة الاولة اسم الخاصية الموجودة في الـInspector
والخانة التي باللون الازرق هي التعديل المطلوب

ScoreLabel
* Layout: “Center Top” (موجودة في شريط الادوات)
* Margin:
> Left: -25
> Top: 0
> Right: 25
> Button: 100
MessageLabel
* Layout: “Center” (موجودة في شريط الادوات)
* Margin:
> Left: -200
> Top: -150
> Right: 200
> Button: 0
StartButton
* Layout: “Center Bottom” (موجودة في شريط الادوات)
* Margin:
> Left: -100
> Top: -200
> Right: 100
> Button: -100

بهذه الطريقة ستحصل علي هذا الشكل
HUD positionsحاليا نكاد نكون جاهزين لعمل السكربت
فقط قم بتحديد عقدة MessageTimer ثم في الـinspector ستجد الخاصية wait time
اجعله ثانيتين واجعل الخاصية on shot الي on لاننا لا نريد ان يعمل المؤقت في كل مرة ينتهي
بل نريده ان يعمل عندما نريد ان نقول له اعمل
بعد الانتهاء قم بحفظ هذا المشهد عن طريق ctrl + s
ثم قم باضافة سكربت الي العقدة HUD

سكربت مشهد HUD

كبداية لنتذكر ما الذي نريده من هذا السكربت
اول شئ نريد عن الضغط علي زر start تتغير MessageLabel من dodge the creeps الي ready
وفي نفس الوقت نريد من المؤقت ان يعمل وبعد ثانيتين تختفي كلمة ready ويظهر اللاعب خاصتنا
ويبدا العداد الخاص بالنقاط في العمل ويبدا الاعداء في الظهور
جميل جدا
ايضا سنقوم بعمل بعض الاشارات الجديدة
من اجل ارسال اشارة الي مشهد Main لانه فعليا هو المشهد المتحكم في كل شئ
سنقوم بارسال اشارة من اجل اظهار اللاعب
وبدا اللعبة
وهي اشارة جديدة باسم start_game
لذلك قم باضافة هذا السطر الي السكربت(HUD)
signal start_gameالان اذا نظرت الي قسم الاشارات في العقدة HUD ستجد ان هناك اشارة جديدة باسم start_game
لن نحتاجها حاليا ولكن سنحتاجها عندما نقوم بوضع هذا المشهد مع مشهد Main
وبما اننا سنقوم بتغير النص الخاص بالعقدة MessageLabel
بين احد هذه النصوص (game over, ready, dodge the creeps) ثم نقوم باظهاره للمستخدم
وفي نفس الوقت نقوم بتشغيل الثانيتين
فما رايك بعمل دالة جديدة تقوم بكل هذا في نفس الوقت
اضف هذه الدالة بما فيها داخل السكربت (HUD) من اجل عمل هذا كله
show massageحيث ان البراميتر text هو النص الذي نريد عرضه
بهذه الطريقة يكفي استدعاء هذه الدالة من اجل عمل كل هذه الاوامر
الان نريد من اللعبة عند الضغط علي زر start فتقوم باخفاء الزر نفسه
ثم تقوم بتشغيل اشارة start_game فتقوم الاشارة بتنبيه المشهد Main ان اللعبة بدات
فيقوم هو باخفاء الرسالة
الموجودة في منتصف الشاشة (اي العقدة Message Label)  ثم تشغيل اللعبة
لذلك حدد العقدة StartButton الموجودة في مشهد HUD وفي قسم الاشارات الخاص بها
ستجد الاشارة Pressed قم بربطها مع سكربت العقدة HUD
*ان لم تعرف كيف تقوم بربط الاشارة مع العقد قم بمراجعة الدرس السابق
وعندما يقوم بعمل دالة جديدة اضف اليها هذه المحتوياتStart button pressedemit_signal تقوم بتشغيل الاشارة الموجود اسمها بين القوسين
لكن حاليا لن تفعل شيئا لاننا لم نقم بربط الاشارة start_game بشئ
في الوقت الحالي لنكمل السكربت الخاص بنا
بما ان الرسالة الموجودة في وسط الشاشة الخاصة بالعقدة MessageLabel
سنقوم باخفائها بعد ثانيتين من الضغط علي زر start
وفي نفس الوقت بعدما يخسر اللاعب ستظهر رسالة game over وبعد ثانيتين
تختفي مجددا
لذلك لنقم بعمل هذا الامر البسيط
حدد العقدة MessageTimer ثم في قسم الاشارات قم بربط الاشارة time out
مع عقدة HUD وفي الدالة الجديدة التي تم صنعها اضف هذا السطر لها
hide massageواخيرا نريد عندما يخسر اللاعب
ان تظهر كلمة game over وبعد ثانيتين
تظهر كلمة dodge the creeps ويظهر معها زر start مجددا
لذلك قم بعمل هذه الدالة الجديدة واضف اليها هذه المحتويات
show_game_overyield تقوم بايقاف الدالة الي ان تعمل الاشارة المشار اليها بين القوسين
حيث البراميتر الاول هو العقدة الموجود فيها الاشارة
اما البارميتر الثاني هو اسم الاشارة نفسها
بهذه الطريقة عند استدعاء هذه الدالة
ستقوم باظهار رسالة game over وبعدها تتوقف بسبب الشرط yield وبعد تشغيل الاشارة (وفي حالتنا ستعمل الاشارة بعد ثانيتين) تكمل الدالة الي السطر الذي بعده
*تذكر ان n\ تقوم بجعل الكلام الذي بعدها داخل السطر الثاني

بهذه الطريقة تقريبا انتهينا من مشهد HUD هناك المزيد سوف نقوم باضافته ولكن حاليا
نحتاج الي بعض الاشياء الاخري
الان قم بحفظ مشهد HUD عن طريق ctrl + s
ثم في مشهد Main حدد العقدة Main واضف اليها مشهد HUD مثلما فعلت مع مشهد اللاعب

اعتقد اننا وصلنا الي مرحلة جيدة وقد قمنا بعمل اغلب المهام التي نريدها ولم يتبقي غير
* ربط اشارة start_game مع العقدة Main
* تحديد الوقت الذي سيتم زيادة النقاط فيه (والذي سكون ثانية واحدة)
* تحديد الوقت الذي ما بين الضغط علي زر start وتشغيل اللعبة (والذي سيكون ثانيتين)
* جعل اللاعب يخسر عندما يصتدم باحد الاعداء
* جعل عداد النقاط يرجع الي صفر عند الضغط علي زر start

حسنا لنقم اول شئ بعمل اصابة اللاعب
لانها الاسهل حاليا بين باقي النقاط
في السكربت الخاص باللاعب Player اضف اليه هذا السطر في اعلي السكربت signal hit
قبل الدالة الاولي

ثم في مشهد Player حدد العقدة Player وعند قسم الاشارات ستجد اشارة اسمها body_entered
وهي اشارة يتم استدعائها عندما يقوم اي كائن اخر بلمس العقدة نفسها
(طبعا اي كائن اخر الا العقد الابناء لتلك العقدة)
قم بربطها مع عقدة Player
وبعد انشاء الدالة الخاصة بالاشارة اضف اليها هذه الاسطرbody entered*ملحوظة disabled تعني حظر او عدم تشغيل لذلك عندما نعطيها قيمة true فذلك يعني تشغيل الحظر
سوف نقوم بربط العقدة hit مع عقدة Main لنقول لها ان اللاعب خسر
قم بحفظ كل شئ عن طريق ctrl + s لكي يتم تحديث العقدة Player الموجودة في المشهد Main
ثم ارجع الي المشهد Main لنقوم بربط الاشارة hit
ولكن قبلها قم باضافة عقدة Timer جديدة للعقدة Main وقم بتسميتها ScoreTimer حيث عن بدا اللعبة
سيعمل هذا المؤقت وبعد كل ثانية يقوم المؤقت باضافة نقطة واحدة الي مجموع النقاط
وعندما يخسر اللاعب يتم ايقاف هذا المؤقت لكي لا يضيف المزيد من النقاط
قم بتحديد المؤقت ScoreTimer وجعل العداد علي 1 (Inspector >> wait time)score = 0
وفي السكربت الخاص بالعقدة Main اضف متغير جديد باسم score بقيمة 0
لاننا سوف نستخدمه لتحديد كمية النقاط الخاصة بالمستخدم

الان قم بتحديد العقدة ScoreTimer ثم في قسم الاشارات ستجد الاشارة timeout قم بربطها
مع العقدة Main واضف الي الدالة الخاصة بها هذا السطر+ scoreوبما ان العداد يقوم بالبدا من جديد بعد الانتهاء (وهو في الاصل ثانية واحدة)
نستطيع اعتبار ان النقاط الخاصة باللاعب هي وقت اللعب الخاص به بالثواني

لنرجع الان الي الاشارة hit
في المشهد Main قم بتحديد العقدة Player وفي قسم الاشارات ستجد اشارة باسم hit
سنقوم بربطها مع العقدة Main ولكن هذه المرة سنقوم بتغير اسم الدالة التي سيتم صنعها
الي game_over نظرا لانه عندما يصتدم اللاعب بالعدو فان اللعبة ستنتهي
عندما تقوم بالضغط علي connect بعد اختيار الاشارة ستجد في الاسفل اسم الدالة التي سيتم صنعها
قم بتغيره الي game_over
game over func.PNG
وفي الدالة الجديدة التي اسما game_over قم بوضع الاتي
game over funcحيث HUD هو استدعاء العقدة HUD بما فيها والامر show_game_over هو الدالة الموجودة داخل السكربت الخاص بالعقدة HUD
الان لم يتبقي غير القليل من النقاط
* وضع اللاعب في منتصف اللعبة عند الضغط علي زر start
* ربط المتغير score مع العقدة ScoreLabel (الموجودة في مشهد HUD) لكي يتم عرض النقاط علي الشاشة
* تشغيل اضافة الاعداء عند الضغط علي زر start
* عرض كلمة ready بعد الضغط علي زر start

جيد جدا فقد قطعنا شوطاً كبيرا
لنقم بربط المتغير Score مع العقدة ScoreLabel الموجودة في مشهد HUD لكي يتم عرض النقاط الخاصة باللاعب علي شاشة اللعب نفسه
اعتقد افضل طريقة لعمل هذا الامر
هو عمل دالة جديدة داخل العقدة HUD بها بارميتر نعطيه الرقم المطلوب عرضه
فيعرضه علي الشاشة
حيث في كل مرة يتم استدعاء هذه الدالة نقوم بوضع المتغير score الخاص بنا
فيتم عرض النقاط الخاصة باللاعب
لذلك في السكربت الخاص بالعقدة HUD قم بعمل هذه الدالة بما فيها
update_score.PNGحيث points هو الباراميتر الذي سنقوم باستبداله بالمتغير score عند استدعاء الدالة
وبما ان score هو متغير رقمي والـtext الخاص بالعقدة ScoreLabel تقبل متغير نصي فقط
فقمنا بتحويل points(او score) الي متغير نصي بدلا من رقمي

وبما ان الدالة خاصتنا جاهزة للعمل لنقم باستخدامها
حيث في كل ثانية تمر نحن نحن نريد ان يزداد عداد النقاط الموجود علي الشاشة
لذلك في السكربت الخاص بالعقدة Main في الدالة الخاصة بالاشارة timeout الخاصة بالعقدة ScoreTimer
قم باضافة هذا الامر الجديدscore in the screenحيث HUD هو استدعاء للعقدة HUD و update_score هو الدالة التي صنعناها الموجودة داخل السكربت الخاص بالعقدة HUD بينما score هو المتغير score الخاص بنا وهنا سيكون مكان الباراميتر points

تبقي الان تشغيل زر start ليقوم بعمله
اول شئ نحن نريد من اللاعب ان يكون في منتصف الشاشة عن بدا اللعبة
وطبعا بما انه لن يكون ظاهر (سواء لانه خسر او لانها بداية اللعبة)
فنحن نريد اظهاره مجددا
ايضا من الممكن ان يكون قد خسر لذلك سيكون الكيان الخاص به غير مفعل من اجل عدم تصادمه مرة اخري مع الاعداء
لذلك نريد ان نعيد تشغيل الكيان الخاص به من اجل جعله قابل للاصتدام من قبل الاعداء
فما رايك حاليا بعمل دالة تقوم بهذا كله
في السكربت الخاص بالعقدة Player سنقوم بعمل دالة جديدة باسم start وداخلها باراميتر باسم pos
حيث نستدعي هذه الدالة من السكربت الخاص بالعقدة Main ونغير الباراميتر الي الاحداثيات المطلوبة
قم باضافة هذه الدالة بما فيها داخل السكربت الخاص بالعقدة Player 
Start.PNGبهذه الطريقة نستطيع استخدام هذه الدالة عندما يقوم اللاعب بالضغط علي زر start

الان نريد شئ اخر
وهو اضافة الوقت ما بين الضغط علي زر start وبدا اللعبة
فنحن لا نريد ان تبدا اللعبة مباشرة بعد الضغط علي زر start لكي لا نربك المستخدم
او بمعني اخر لنجعله يستعد بعد الضغط علي زر start
لذلك قم باضافة عقدة Timer جديدة الي العقدة Main وقم بتسميتها بـStartTimer
بعد ذلك قم بتحديد المؤقت الخاص بها علي 2
وفي الخاصية on shot حددها لتكون on لاننا لا نريد ان يعمل المؤقت مرة اخري
الا عندما نقول له ذلك
وفي قسم الاشارات الخاص بالعقدة StartTimer قم بربط الاشارة time out مع العقدة Main
وفي الدالة الجديدة التي تم صنعها اضف هذين السطرين
start timer.PNGحيث بعد الضغط علي زر start سيظهر اللاعب وبعد ثانيتين سيبدا الاعداء في الدخول الي اللعبة
ويبدا عداد النقاط الخاص باللاعب في الازدياد

اتعرف انه تبقي خطوة واحدة وننهي هذا الدرس
وهي الاشياء التي سيقوم بها زر start
اكيد انك تتذكر اننا قمنا بعمل اشارة جديدة باسم start_game في السكربت الخاص بالعقدة HUD
والتي يتم تشغيلها عندما يتم الضغط علي زر start
واعتقد انك تعرف كيف تقوم بتغير اسم الدالة التي سيتم صنعها عند ربط اشارة ما بالدالة
لكن ما رايك بربط اشارة مع دالة موجودة من الاساس في سكربت
في السكربت الخاص بالعقدة Main اضف هذه الدالة الجديدة بما فيها
new game.PNG
بهذه الطريقة نحن قمنا باعداد الدالة الخاصة بالاشارة start_game
وتبقي حاليا ربط الاشارة مع هذه الدالة
قم بتحديد العقدة HUD الموجودة في المشهد Main وفي قسم الاشارت الخاص بها
ستجد الاشارة hit قم بالضغط عليها مرتين او قم بتحديدها واضغط علي connect
لتظهر امامك واجهة الاعداد الخاصة بالاشارة
وهنا قم بتغير اسم الدالة الخاصة بها الي نفس اسم الدالة التي قمنا بعملها
(دالة new_game) ثم اضغط علي connect ليتم ربط الاشارة
start game signal.PNG
وبهذه الطريقة سيتم ربط الاشارة مع الدالة الموجودة اساسا
حيث اذا تم تشغيل تلك الاشارة
سيتم تشغيل هذه الدالة

حاليا تستطيع تشغيل اللعبة والاستمتاع باللعبة بها
عن طريق الوقوف علي مشهد Main ثم الضغط علي مفتاح F6 او بالضغط علي play scene
ولكن بهذه الطريقة عن تصدير ملف اللعبة
اي تكون اللعبة عبارة عن ملف واحد ونقوم بتشغيلها سنجد ان لا شئ ظاهر
وهذه طبيعي جدا نظرا لاننا لم نحدد للمشروع ما هو المشهد الرئيسي
وهناك طريقتين
الطريقة الاولي (وهي الاسهل)
اضغط علي زر play او عن طريق المفتاح F5 لتظهر لك رسالة تقول لك
انك لم تختر المشهد الرئيسي (تظهر هذه الرسالة ان لم تختر المشهد الرئيسي)
تقوم بالضغط علي زر select الموجود في الرسالة
ثم تقوم باختيار الملف الخاص بالمشهد الرئيسي وفي حالتنا
ستجد ان الملف باسم “Main.tscn”
الطريقة الثانية
تقوم بالضغط علي project >> project settings
وعندما تظهر لك واجهة الاعدادات الخاصة بالمشروع تذهب الي run الموجودة في القائمة علي اليسار
وفي الخيار Main تقوم بالضغط علي ايقونة الملف ثم تختار ملف المشهد الرئيسية
Main scene
سواء اخترت الطريقة الاولي او الطريقة الثانية
يمكنك الان الضغط علي مفتاح F5 او زر play
حتي ولو لم تكن واقف علي المشهد الرئيسي
وبهذه الطريقة سيقوم المحرك بفتح المشهد الرئيسي

وهكذا نستطيع ان نقول ان الدورة انتهت
تبقي حاليا درس اخير سيكون فيه اعداد الخلفية واعداد بعض المؤثرات واضافة الاصوات
وتلك امور سهلة وتعتبر جانبية ولا تحتاج الي كتابة اي كود اساسا
*الدرس الاخير سيكون فيه بعض التنبيهات علي ما يجب فعله بعد هذه الدورة

الدرس الاخير “اول لعبة لك بالمحرك#5 الاصوات وبعض المؤثرات

لذلك اذا كان هناك اي مشكلة واجتهك ارجو منك ارسال صورة لها علي الجروب الرسمي للمدونة

إذا كان هناك شئ لم اشرح بالتفصيل او اذا كان هناك شئ لم تفهمه
اترك تعليق او اسئل في احد هذه الجروبات علي الفيس بوك (ستجدني هناك)
تطوير الالعاب
جودو بالعربي
او يمكنك مراسلة المدونة عبر البريد
godotarabic@gmail.com

 

نُشرت بواسطة

light

مطور العاب مستقل, يامل بنشر محتوي تطوير الالعاب في الوطن العربي

رأيان حول “اول لعبة لك بالمحرك#4 الـMenu و اضافة اللاعب”

أضف تعليق