موضوع: كيف تبرمج قائمة رئيسية ....

ردود: 5 | زيارات: 1535
  1. #1
    عضو نشيط
    صور رمزية أسد الله
    تاريخ التسجيل
    Nov 2001
    المنطقة
    الرياض
    ردود
    675

    Thumbs up كيف تبرمج قائمة رئيسية ....

    بسم الله الرحمن الرحيم :
    أولاً وضع هذا الدرس كمحاولة لتحريك المنتدى و بناء على هذا توضع الدروس الأخرى بإذن الله.
    ثانياً وضع هذا الدرس معاونة لإخي game_maker في دروسه .

    /////////////// طريقة عمل قائمة رئيسية ///////////////////////
    أولاً :أنشئ أية مرحلة لو تطاشيم واحفظها باسم tut ضروري.
    أولاً : قم باختيار file من القائمة العليا .
    تكون لديك بعدها ثلاث خيارات (main & fog&sun).
    إختر main.
    فروعه : 3-Nexus وهو الذي يتيح لك إضافة مجسمات أكثر للمشهد وهو سبب ظهور الرسالات التالية : error not enough entities reserved 300
    أو too small nexus عند ظهور هذه المشكلة إرفع قيمة هذه الخاصية وحدها الأقصى 200.

    4- palette دعنا من هذه الآن .
    5- ملف البرمجة المرتبط بالمرحلة .إختر الأمر الموضح بالرقم 6 وهو لإنشاء برمجة جديدة مسماة باسم المرحلة .




    ////////////////////////////////////////////////////
    ثانياً:قم بفتح برنامج البرمجة إذا لم تكن تمتلك واحداً فحمله من موقع conitec مجاني أو استخدم الـ note pad .



    ///////////////////////////////////////////////////
    ثالثاً:قم بفتح ملف البرمجة الذي أنشأناه في الخطوة الأولى بالذهاب إلى المسار الذي حفظت فيه المرحلة tut .
    ستجده باسم tut.wdl .

    /////////////////////////////////////////////////
    رابعاً : ستجده قد أنشئ برمجة جاهزة tempalete لا تغير منها شيئاً إلا المسار المحدد بالرقم 1 غيره إلى مسار برنامج الغيم ستوديو ملف tempalete أو إذا كان المسار صحيحاً فدعه كما هو .
    في الرقم 2 هذه هي الملفات التي سترفق مع لعبتك ويمكنك استخدامها .


    ////////////////////////////////////////////////
    خامساً : أكتب هذه البرمجة في آخر ملف tut.wdl الذي فتحته .
    السطرين :
    var video_mode = 6;
    var video_depth = 16;
    يحددان دقة الشاشة عند البداية ودقة الألوان 6=640*480.
    16=16 بت.

    السطرين :
    var sound_vol = 70;
    var video_value = 7;
    يعرفان متغيرين سنستخدمهما لاحقاً لنعطي اللاعب قدرة تعديل ارتفاع الصوت ودقة الشاشة.

    السطر:
    bmap mainmenu = <main_menu.pcx>;
    يعرف البرنامج بإنك تريد كلمة mainmenu تكون ترمز دائماً إإلى الصورة المسماة main_menu.pcx
    وهكذا بقية السطور .

    وهكذا يجب أن تكون لديك الصور التالية (أنشئها بنفسك) بالأسماء التالية بصيغة (pcx):
    1-start
    2-start_over
    3-sound_def_wind
    4-sound_def
    5-sound_def_2
    6-video_wind
    7-video_def
    8-video_def2
    9-main_menu
    10-mouse
    11-end_1
    12-end_2
    13-slider

    في السطر :
    sound mouse_snd = <mousesnd.wav>;
    نعرف له صوت معين .يجب أن يكون لديك صوت بنفس الإسم (mousesnd)وهو صوت الضغط على أزرار القائمة .

    ملاحظة جميع ملفاتك أصواتك وصورك يجب أن تكون داخل ملف اللعبة .

    السطر :
    string level1 = <tut.wmb>;
    يعرف له اسم المرحلة .







    ////////////////////////////////////////
    سادساً:
    نعرف له panels قوائم (أي صورة تظهر في اللعبة يجب أن تبرمج لها قائمة ).
    السطر :
    panel main_pan
    يعرف له قائمة تكون هي القائمة الرئيسية .
    وكلمة main_pan هو اسم القائمة أي حينما نذكر في أحد سطور البرمجة main_pan أي نقصد القائمة main_pan بكل متغيراتها وخصائصها .

    السطر:
    bmap = mainmenu;
    يقول له أن صورة القائمة هي التي عرفناها سابقاً في الخطوة الخامسة باسم mainmenu.
    السطر:
    layer = 20;
    يوضح له في أي شفيفة يظهر الصورة أي لو كانت لدينا صوره قيمتها :
    layer = 19;
    وأخرى قيمتها :

    layer = 20;
    وأظهرناهما في نفس الوقت ستظهر الصورة ذات القيمة عشرين فوق الصورة ذات القيمة 19.

    والسطرين :
    pos_x = 0;
    pos_y = 0;
    يوضحان موقع الصورة على محور الـ x ومحور y .

    والسطر :
    button = 50, 65, start_button, start_button, start_button_over, null, start_game, mouse_over;
    ينشئ زراً مرتبطاً بالقائمة الرئيسية ، الرقمين الأولين هو موقعه من الشاشة ، أما كلمة start_button هو اسم للصورة التي عرفناه في الخطوة الخامسة في حالة عدم وجود الفأرة فوقها أو الضغط عليها .

    و start_button الأخرى هي لحالة الضغط .
    و start_button_over هي في حالة وجود الفأرة عليها .
    و null أي لا ردة فعل أو حركة مادامت الفأرة ليست عليها أو لم تضغطها .
    ودائماً نستعمل null أو nullvector لإلغاء ردة فع لأي شيء أو لإعطاء شيء لا شيء!!.
    و start_game هو الأمر الذي سينفذه البرنامج حينما نضغط على الصورة .وهو تحميل المرحلة و و و و و ....

    #ملاحظة:الأوامر سنأتي لها في الأسفل .
    و mouse_over هو أيضاً أمر ينفذ في حالة وضع الفأرة فوق الزر.وهو يستدعي صوت (الذي عرفناه في الخطوة الخامسة ).

    والسطر الذي حددته بالأرقام :
    flags=d3d,overlay,refresh;
    ومعنى flags أي خصائص الصورة :
    d3d=حالة من حالات العمل وهو يظهر الصورة بمظهر أفضل ولكن أبطأ .
    overlay=إخفاء الأجزاء السوداء من الصورة عند إلغاءك هذه الخاصية لن تختفي الأجزاء السوداء من الصورة .
    refresh=يجعل الصورة تتكرر على كل فريم من اللعبة أي لو ألغينا هذه الخاصية وتحرك اللاعب أي تغيرت صورة المرحلة ستختفي صورتنا .
    خصائص أخرى:
    visible= يجعل الصورة ظاهرة دائماً،نادراً ما نستخدم هذه الخاصية لأننا بالعادة نرجح اظهار الصورة في وقت معين أو حالة معينة ثم نريدها أن تختفي .
    transparent=يعطي الصورة شفافية بنسبة خمسين بالمئة .
    وخصائص أخرى لا تهمنا الآن .
    وهكذا بالنسبة للأسطر الباقية (نفس الفكرة ).
    أما عن السطر :
    hslider = 60, 95, 200, slider, 0, 100, sound_vol;
    فهو يعرف صورة تتحرك أفقياً horizenal :
    الرقمين الأولين يوضحن موقع الصورة .
    الرقم الثالث : يوضح المسافة التي خلالها يتغير الرقم لليسار بالناقص ولليمين بالزائد .
    slider هو اسم للصورة المتحركة عن طريق السحب بالفأرة وقد عرفناها في الخطوة الخامسة .

    0, 100 القيمة sound_vol إذا وضعناها على أقصى اليسار ستكون صفر وكلما سحبنا الصورة إلى اليمين ستزداد القيمة إلى أن تبلغ المئة .
    المتغير الذي ستتغير قيمته من خلال السحب كما سبق وأوضحنا .

    //////////////////////////////////////////////////////////
    ثامناً:
    السطر :
    function main()
    {
    هو الأمر الرئيسي الذي سيبدأ مع بداية اللعبة .
    on_esc = null;
    كما سبق وأوضحت أننا نستخدم null لإلغاء عمل أي شيء وهنا ألغينا عمل الزر esc لأنه على حسب ما هو مجهز يقوم بالخروج من اللعبة فوراً ونحن نريده أن يخرج من القوائم الفرعية فقط .
    السطر:
    level_load (level1);
    يقوم بتحميل المرحلة .
    السطر :
    wait (2);
    أي قم بالإنتظار لعشرين جزء من الثانية .
    السطر :
    game_init();
    أي قم باستدعاء هذا الأمر.
    السطر :
    main_pan.visible = on;
    بعد تحميلك للمرحلة قم بجعل القائمة الرئيسية مرئية .
    السطر:
    mainmenu_mouse();
    ثم استدع mainmenu_mouse(); لإظهار الفأرة.

    الأمر
    function mouse_over()
    يقوم بتشغيل صوت وقد استدعيناه سابقاً .
    الأمر :
    function mainmenu_mouse ()
    يقوم بتعريفه بصورة الفأرة وموقعها وحركتها .
    السطر :
    mouse_mode = 2;
    يقوم بوضع اللعبة في حالة الإيقاف التام .
    السطر :
    mouse_map = mouse;
    يقوم بإعطاء الفأرة الصورة mouse والتي عرفناها في الخطوة الخامسة .
    و
    mouse_mode = 0
    يجعل اللعبة في حالة العمل التام .


    ///////////////////////////////////////
    تاسعاً:
    سنختصر من هنا وبقية الأوامر نشرحها في دروس لاحقة لعدم الإطالة.
    exit;
    يقوم بالخروج من اللعبة .

    ////////////////////////////////////
    عاشراً : بقية البرمجة :
    إن الآخرين قد يتواجدون لمساعدتنا وتعليمنا وتوجيهنا ، ولكن الدرس الذي يجب أن نتعلمه متروك لنا .


  2. #2
    عضو نشيط
    صور رمزية أسد الله
    تاريخ التسجيل
    Nov 2001
    المنطقة
    الرياض
    ردود
    675

    تابع

    حادشاً :نقوم بإضافة النصوص المحاطة بالأحمر بعد نهاية الأمر function main
    ليس الذي قمنا نحن ببرمجته وإنما الموجود في أعلى البرنامج بعد الإضافات.

    //////////////////////////////
    ثانوشا:نصمم المرحلة استفد من دروس أخي جيم ميكر .

    /////////////////////////////////
    ثالوشا:نختار الأمر buildالمحدد بالرقم 1.
    ثم نختار الأمر run المحدد بالرقم 2.


    تمتع بقائمتك (لا تنس تصميم صورك التي ذكرنا أسماءها في الخطوة الخامسة ).

    أي أسئلة .؟
    تحياتي :
    أخوكم أسد الله .
    وآسف للإطالة
    إن الآخرين قد يتواجدون لمساعدتنا وتعليمنا وتوجيهنا ، ولكن الدرس الذي يجب أن نتعلمه متروك لنا .

  3. #3
    عضو فعال
    تاريخ التسجيل
    Jan 2003
    المنطقة
    مصر
    ردود
    236
    السلام عليكم

    شكرا على هذا الدرس الرائع
    فى انتظار الباقى (ان شاء الله )

    ملاحظة (هناك موضوع ارجو الرد عليه )
    http://www.maxforums.net/showthread....threadid=23845

    و شكرا

  4. #4
    عضو نشيط
    صور رمزية أسد الله
    تاريخ التسجيل
    Nov 2001
    المنطقة
    الرياض
    ردود
    675
    رددت على موضوعك
    إن الآخرين قد يتواجدون لمساعدتنا وتعليمنا وتوجيهنا ، ولكن الدرس الذي يجب أن نتعلمه متروك لنا .

  5. #5
    مجهود رائع تشكر عليه ولاكن الصور غير موجوده
    ©§¤°^°¤§©¤ SAMIRKINGMAX¤©§¤°^°¤§©
    منتديات سمير كنج ماكس

    مصر - محافظة الاسكندرية
    للمراسلة

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل