الشبكة العربية لمطوري الألعاب

خبير مدير وسام البهنسي مشاركة 1

السلام عليكم،
 
هذه المهمة تمثل عصباً رئيسياً آخر للتحكم بسير اللعبة ☺
 
القائمة الرئيسية ستحوي الأوامر التي تأخذ اللاعب عبر أقسام اللعبة المختلفة. الأوامر في القائمة الرئيسية هي:
 
* القصة
* لعبة جديدة  (الاختيار الافتراضي)
* اختيار مرحلة
* تحرير مرحلة
* إعدادات
* فريق التطوير
* مساعدة
* خروج
 
حالياً لا يوجد تصميم فني للواجهة، لذلك سنكتفي بكتابة الأوامر كنصوص بالعربية، مع مربع يحيط بالخيار الحالي. الأسهم (فوق وتحت) للتنقل، وزر المسافة للاختيار.
 
لكل أمر في القائمة، أضف مدخلاً له في قائمة الحالات في وحدة الـ Stateflow. الأمر الوحيد المطلوب منك تنفيذه في القائمة هو أمر الخروج ☺
 
بعد إنهاء التعديلات، قم برفعها إلى النسخة المركزية في موقع كود بليكس، وأعلمنا بذلك..
 
إن كانت لديك أية أسئلة فلا تتردد بطرحها
 
والسلام عليكم

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

موهوب  ياسر أبوبكر مشاركة 2

السلام عليكم

وحدة "القائمة" أصبحت جاهزة تقريبا

 هذا هو السيناريو الحالي لهذه الوحدة :
تشتغل اللعبة - يوجد 4 إختيارت - كل إختيار يمثل حالة  (StateFlow.FlowAction) - التنقل بين الحالات بالزر "أعلى" و "أسفل" -  تختار الحالة بزر المسافة أو الإنتر - تنتقل اللعبة إلى هذه الحالة ولكن القائمة سوف تظل موجودة - وبإمكانك الإنتقال إلى حالة أخرى بإتباع نفس السيناريو ...

وهذا ليس هو السيناريو الصحيح وأنا أدرك ذلك
حيث من المفترض أن تكون القائمة هي أيضا عبارة عن حالة (StateFlow.FlowAction) ولكنها عبارة عن بوابة لحالات أخرى ... فعند إختيار أحد الإختيارت ستنتقل اللعبة من حالة القائمة الرئيسية إلى هذه الحالة وتختفي القائمة بالطبع ...

ولإتمام هذه المهمة فسأحتاج إلى إضافة بعض التعديلات في وحدة
التنقل بين أجزاء اللعبة ...

ولذلك سوف أرفع التعديلات هنا لمناقشتها وإقتراح المناسب ... حيث من المحتمل أن التعديلات قد تؤثر على بقية الوحدات ...

خبير مدير وسام البهنسي مشاركة 3

لقد اطلعتُ على الكود، وإليك ملاحظاتي:
 
* ضبط هجاء كلمة Menu، فهي ترد بشكل Manu في أنحاء الكود.
 
* أعجبني تقسيم الهيكلية لصنف Menu وصنف MainMenu. بهذه الطريقة تستطيع إنشاء أكثر من قائمة بنفس التقنية.
 
* كما قلت أنت، يجب أن يتم جعل MainMenu يرث من الصنف State ويعمل وفقاً لقوانينه.
 
فيما عدا ذلك سنكتفي بهذا القدر حتى يتم تصميم القائمة الرئيسية.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير مدير وسام البهنسي مشاركة 4

كيف تسير معك الأمور يا ياسر؟ ☺

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

موهوب  ياسر أبوبكر مشاركة 5

أعتذر كثيرا عن التأخير وذلك بسبب ظروف العمل

إذا رأت الإدارة أنه من الأنسب تسليم المهمة لشخص أخر فليس لدي مانع إطلاقا وشكرا لكم

خبير مدير وسام البهنسي مشاركة 6

حسناً، هل من أحد يودّ استلام هذه المهمة اليتيمة؟ ☺

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

مبتدئ  بلال بوزيــــــــاني مشاركة 7

السلام عليكم
 
أود ان أستلم هذه المهمة  😋 ,  لاكن أنتظر الاخرين ان اراد أحدهم إستلامها لإعطاء الفرصة لغيري  , فإن لم يوجد من يستلمها فانا مستعد و متحمس ☺ .
 
أخوكم بلال.

خبير مدير وسام البهنسي مشاركة 8

وفي 07/شعبان/1431 04:14 ص، أعرب بلال بوزيــــــــاني عن رأيه بالموقف كالآتي:

أود ان أستلم هذه المهمة  😋

توكل على الله وابدأ التنفيذ. لا داعي للانتظار أكثر.

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

مبتدئ  بلال بوزيــــــــاني مشاركة 9

السلام عليكم
 
الحمد لله أنتهيت من وحدة القائمة الرئيسة ☺ , طبعا اعدت كتابة الوحدة من جديد مستعملا افكار اخونا  ياسر أبوبكر بارك الله فيه محسنا الوحدة من جهة التصميم.
 
-1 اضافة ميزة  صناعة واجهة او مرحلة فيها قائمة  تشكلها كما تريد ,  ما عليك فعله هو  إنشاء صنف يرث ( او  Implement في الاصطلاح)  من الصنف المجرد  abstract class  الذي اسمه BaseGameMenu الذي هو أصلا يرث من الصنف GameState .
 
2- عنصر القائمة ممثل بواجهة Interface اسمها IMenuOption , بعني لك الامكانية في تشكيل و رسم عناصر قائمة ما  بحرية مطلقة , بل يمكن لك إضافة ميزات .
 
هذا طبع شرح مبسط عن كيفية استعمال هذه الوحدة و أعتذر لضعفي و ركاكت لغتي العربية 😳
 
اخوكم بلال.

خبير مدير وسام البهنسي مشاركة 10

ممتاز بلال! القائمة ممتازة وتعمل بشكل صحيح.
 
لدي ملاحظتين:
 
* كل الأصناف التي ترث من State نسميها GameState_ClassName. هذا هو المتبع مع حالتي اللعب وتشغيل الفيديو، لذلك يجب علينا الالتزام بنفس النسق في بقية المشروع. في حالتك فإن كلاً من BaseGameMenu والأصناف المنحدرة منه يجب أن تتبع نظام التسمية هذا... ولا تنسى اسم الملف أيضاً ☺
 
* أثناء رفع تعديلاتك وقعت في نفس خطأ أنس. لم تقم بدمج تعديلاته مع تعديلاتك قبل رفعها. لذلك فإن تعديلاته الأخيرة قد أزيلت بواسطة تعديلاتك. أرجو منك إجراء الدمج وتصحيح المشكلة ☺

وسام البهنسي
مبرمج في إنفيديا وإنفريمز