هذه المهمة تمثل عصباً رئيسياً آخر للتحكم بسير اللعبة ☺
القائمة الرئيسية ستحوي الأوامر التي تأخذ اللاعب عبر أقسام اللعبة المختلفة. الأوامر في القائمة الرئيسية هي:
* القصة * لعبة جديدة (الاختيار الافتراضي) * اختيار مرحلة * تحرير مرحلة * إعدادات * فريق التطوير * مساعدة * خروج
حالياً لا يوجد تصميم فني للواجهة، لذلك سنكتفي بكتابة الأوامر كنصوص بالعربية، مع مربع يحيط بالخيار الحالي. الأسهم (فوق وتحت) للتنقل، وزر المسافة للاختيار.
لكل أمر في القائمة، أضف مدخلاً له في قائمة الحالات في وحدة الـ Stateflow. الأمر الوحيد المطلوب منك تنفيذه في القائمة هو أمر الخروج ☺
بعد إنهاء التعديلات، قم برفعها إلى النسخة المركزية في موقع كود بليكس، وأعلمنا بذلك..
هذا هو السيناريو الحالي لهذه الوحدة : تشتغل اللعبة - يوجد 4 إختيارت - كل إختيار يمثل حالة (StateFlow.FlowAction) - التنقل بين الحالات بالزر "أعلى" و "أسفل" - تختار الحالة بزر المسافة أو الإنتر - تنتقل اللعبة إلى هذه الحالة ولكن القائمة سوف تظل موجودة - وبإمكانك الإنتقال إلى حالة أخرى بإتباع نفس السيناريو ...
وهذا ليس هو السيناريو الصحيح وأنا أدرك ذلك حيث من المفترض أن تكون القائمة هي أيضا عبارة عن حالة (StateFlow.FlowAction) ولكنها عبارة عن بوابة لحالات أخرى ... فعند إختيار أحد الإختيارت ستنتقل اللعبة من حالة القائمة الرئيسية إلى هذه الحالة وتختفي القائمة بالطبع ...
ولإتمام هذه المهمة فسأحتاج إلى إضافة بعض التعديلات في وحدة التنقل بين أجزاء اللعبة ...
ولذلك سوف أرفع التعديلات هنا لمناقشتها وإقتراح المناسب ... حيث من المحتمل أن التعديلات قد تؤثر على بقية الوحدات ...
الحمد لله أنتهيت من وحدة القائمة الرئيسة ☺ , طبعا اعدت كتابة الوحدة من جديد مستعملا افكار اخونا ياسر أبوبكر بارك الله فيه محسنا الوحدة من جهة التصميم.
-1 اضافة ميزة صناعة واجهة او مرحلة فيها قائمة تشكلها كما تريد , ما عليك فعله هو إنشاء صنف يرث ( او Implement في الاصطلاح) من الصنف المجرد abstract class الذي اسمه BaseGameMenu الذي هو أصلا يرث من الصنف GameState .
2- عنصر القائمة ممثل بواجهة Interface اسمها IMenuOption , بعني لك الامكانية في تشكيل و رسم عناصر قائمة ما بحرية مطلقة , بل يمكن لك إضافة ميزات .
هذا طبع شرح مبسط عن كيفية استعمال هذه الوحدة و أعتذر لضعفي و ركاكت لغتي العربية 😳
* كل الأصناف التي ترث من State نسميها GameState_ClassName. هذا هو المتبع مع حالتي اللعب وتشغيل الفيديو، لذلك يجب علينا الالتزام بنفس النسق في بقية المشروع. في حالتك فإن كلاً من BaseGameMenu والأصناف المنحدرة منه يجب أن تتبع نظام التسمية هذا... ولا تنسى اسم الملف أيضاً ☺
* أثناء رفع تعديلاتك وقعت في نفس خطأ أنس. لم تقم بدمج تعديلاته مع تعديلاتك قبل رفعها. لذلك فإن تعديلاته الأخيرة قد أزيلت بواسطة تعديلاتك. أرجو منك إجراء الدمج وتصحيح المشكلة ☺