النتائج 1 إلى 4 من 4

الموضوع: الدرس التــاسع منـ دورة c-script (المؤشرات)

  1. #1
    التسجيل
    07-06-2007
    الدولة
    العالم الافتراضي
    المشاركات
    188

    الدرس التــاسع منـ دورة c-script (المؤشرات)

    المؤشراتـ

    المؤشر هو تعريف يستخدم للأشارة الى احد جسم,دعنا نتخيل التالي....
    تخيل اننا نريد صنع لعـبـة pong بأستخدام محرك 3دي جيم ستوديو........

    اضغط على الصورة لعرض أكبر

الاســـم:	Animation1.gif
المشاهدات:	11
الحجـــم:	15.1 كيلوبايت
الرقم:	308407

    نريد ان نجعل اللوح الايسر يكون تحت سيطرة الآعب واللوح الأيمن يكون تحت سيطرة الحاسوب
    ان المشكلة الحقيقية هو كيف نخبر كودنا من هو الاعب ومن هو الحاســــوب؟!!@!@
    ان الجواب بسيط نضع مؤشر فقط,الذي يمكن تعريفه بالشكل التالي:..
    كود:
    ENTITY*  the_player; 
    
    او
    
    function*  check_status; 
    
    او 
    
    STRING*  my_name; 
    
    او
    
    PANEL*  game_over; 
    
    او
    
    BMAP*  health_picture;
    حسنا نحن يمكننا إضافة مؤشرات الى الكيانات والوظائف والعبارات واللوحــات والصور....وذلك بإضافة "*" الى كودنا بسيط اليس كذلك...

    دعنا ننتقل للعمل...................

    قـم بتحميل المرحلة المرفقة
    لاتنسى يجب تصيير المرحلة
    وقم بتشغيلـهــا,,,,,,,,,,,,,,

    ثم اضغط زر Tab واكتــب
    كود:
    wizard.x = 300;
    .....
    رائع لقد اقترب الساحر الاحمر واصبح قريبا للشاشة كم هذا رائع ولكن قديتبادر الى ذهنك
    لماذا لم يقترب الساحر الازرق؟ولماذا لم يقترب البيتـ ّ؟
    انا خائف كيف لي ان اتحمل كل تلك الاسئلة؟؟؟!
    لكني سأعطيك العـبارة التي تحلهم كلهم؟؟::
    لقد قمنا بتعريف مؤشر للساحر الاحمر...........
    هل ترى نحن نعيش بعالم قاسي ,هذه الحواسيب السيئة لاتهتم بنا نحن البشر....
    وانا اعرف ان ذلك النموذج يبدو مثل الساحر,لكن الحواسيب لاتحب ان تتعلم,اذا اخبرتها بان تحرك النموذج
    السحري الاحمر فانها ستسخر منك اي نموذج احمر واي خرابيط...
    انت يجب ان تستعمل مؤشر لكل كيان يحتاج الى معالجة خاصة من قبل الحاسوب.
    دعنا نفتح السكربت المرفق.........
    كود:
    ////////////////////////////////////////////////////////////////////
    
    var video_mode = 7; // 800x600 pixels
    
    ////////////////////////////////////////////////////////////////////
    
    ENTITY* wizard;
    
    ////////////////////////////////////////////////////////////////////
    
    function main()
    {
        level_load ("work11.wmb");
    }
    
    action wizard_with_pointer()
    {
        wizard = me;
        my.ambient = 100;
    }
            
    action wizard_simple()
    {
        my.ambient = 100;
    }
    الحمدلله,السكربت لايبدو معقدا ابداً,
    معظمه درسناه بالدروس السابقة.......
    اولا حددنا متغيرا يحدد دقة الشاشة ثم قمنا باستدعاء المرحلة المسماة "work11.wmb" بداخل الوظيفة الرئيسية.....
    ثم قمنا باعطاء مؤشر لكيان مسمى الساحر wizard دعنا نلقي نظرة عن قرب على هذا السطر من الكود
    كود:
    ENTITY* wizard;
    لقد عرفنا مؤشر لكيان واسميناه ساحر wizard ,لايهم يمكنك وضع اي اسم فبائمكانك اعطاء اسم رجل الي لقرد مثلاً:
    دعنا الآن نرى المهمة التي اسميناها wizard_with_pointer
    كود:
    action wizard_with_pointer()
    { 
         wizard = me; 
         my.ambient = 100; 
    }
    بالاعلى قمنا يتعريف مؤشر لكيان واسميناه ساحر اذا كنت تذكر نحن هنا عرفنا بأن الذي يستعمل هذه المهمة
    يصبح هو الساحر من الىن وصاعدا وذلك من خلال هذا الكود"wizard = me;"
    والذي يستخدم المهمة wizard_with_pointer هو الساحر الاحمر اذن هو السـاحر......

    والسطر الثاني بالمهمة يعطي نسبة البيئة للساحر فمثلا كانت البيئة =0 فان الساحر سيبدو شبه مضلم واما اذا جعلنا القيمة 100 فان الساحر سيصبح مضيئاً
    كود:
    action wizard_simple() 
    { 
         my.ambient = 100; 
    }
    هذه المهمة تربط بالساحر اللازرق اوه انا نسيت باننا سنحتاج لمؤشر هنا سنناقشه بنهاية الورشة,
    د
    الان لنتعرف الطرق التي نكتب بها المؤشر:
    1-نعرف المؤشر في سطر وحيد من الكود
    2-نخبر المؤشر بمن سيكون مالكه بوضع السطر الذي يعرفه بالرمز:
    كود:
    action players_horse() 
    { 
        horse = me; 
        ...
    }
    من الان وصاعدا ستكون قادرا على السيطر على المهمة التي تسمى players_horse ,وذلك باستعمال طريقة النقطة
    كود:
    object.property
    الان قم بتشغيل المرحلة من جديد وقم بالضغط على زر tab وطباعة الرمز التالي......
    كود:
    wizard.z = 100;
    هل لاحضت لقد غير الساحر ارتفاعه في الحقيقة انت يمكنك استعمال x, y, z, pan, tilt, roll, invisible, transparent للتحكم
    فمثلا انت تريد اخفاء الساحر. قم بكتابة الرمز التالي....

    كود:
    wizard.invisible = ON;
    ولأظهلره قم بكتابة المز التالي:

    كود:
    wizard.invisible = OFF;
    الان لنعمل شيئا جديدا قم بكتابة وظيفة جديدة ولتكن :
    كود:
    function move_up() 
    { 
        wizard.z = wizard.z + 5; 
    }
    ثم قم بإضافة هذا السطر بالوظيفة الاساسية
    كود:
    on_u = move_up;
    ليصبح بهذا الشكل....
    كود:
    //////////////////////////////////////////////////
    var video_mode = 7; // 800x600 pixels
    
    //////////////////////////////////////////////////
    ENTITY* wizard;
    
    //////////////////////////////////////////////////
    
    function move_up() {   wizard.z = wizard.z + 5; } 
    
    function main()
    {
        level_load ("work11.wmb");
      on_u = move_up;
    }
    
    action wizard_with_pointer()
    {
        wizard = me;
        my.ambient = 100;
    }
            
    action wizard_simple()
    {
        my.ambient = 100;
    }
    انت تلاحظ باننا اضفنا وظيفة واسميناها التحرك لاعلى ثم قمنا بوضع
    كود:
    wizerd.z=wizerd.z+5;
    وهذا يعني بان يرتفع الساحر لاعلى بمقدار 5 وحدات فمثلا اذا كان بـ15 فسيصبح ب 20 وهكذا
    لكن هذا الرمز يبدو غريباً:
    كود:
    on_u = move_up;
    حسنا ان هذه السطر هو انه عندما يضغط الاعب زر U فان الساحر يرتفع بمقدار 5 وهكذا مادام الاعب مستمر بالضغط وذلك عندما اضفنا اشارة المساواة واضفنا بعدها move_up فانه عندما يضغط الاعب زر u يشغل الوظيفة المسماة move_up

    الان احفظ السكربت ثم قم بتشغيل السكربت....وقم بالضغط على زر u ولاحظ ماذا سيحدث رائع اليس كذلك..
    المؤشرات هي من الاهميات التي يستعملها المحرك.....
    دعنا نرى المهمة التي ربطناها بالساحر الازرق
    كود:
    action wizard_simple()
    { 
         my.ambient = 100; 
    }
    هذا يعرف بان مقدار البيئة للكيان الذي يستعمل هذه المهمة هو 100 واي كائن يتعملها سيبدوا ظاهر جداً

    والان انت شغل السكربت و جرب كتابة هذا الامر :
    كود:
    my.invisible = ON;
    فان المحرك سيعطيك رسالة خطأ فالكمبيوتر لايعرف ماهو هذا My لذلك عندما نريد فعل ذلك يجب كتابتها بمهمة منفردة:
    كود:
    action hide_me 
    { 
        my.invisible = ON; 
    }
    هل لاحظت الان فائدة المؤشرات.....
    تدريب
    قم بكتابة وظيفة تأمر الساحر بالاستدارة 5 درجات باتجاه اليسار عند الضغط على زر g


    الدرس القدام If - Else branching

    الملفات المرفقة الملفات المرفقة

    <<<>>>
    كتاب لغة سي سكريت c-script باللغة العربية

    الجزء الأول هنا

    <<<>>>



  2. #2
    التسجيل
    07-06-2007
    الدولة
    العالم الافتراضي
    المشاركات
    188

    رد: الدرس التــاسع منـ دورة c-script (المؤشرات)

    شكله الدرس صعـــــــب !!

    <<<>>>
    كتاب لغة سي سكريت c-script باللغة العربية

    الجزء الأول هنا

    <<<>>>



  3. #3
    التسجيل
    22-05-2008
    المشاركات
    47

    رد: الدرس التــاسع منـ دورة c-script (المؤشرات)

    اقتباس المشاركة الأصلية كتبت بواسطة ديمو1 مشاهدة المشاركة
    شكله الدرس صعـــــــب !!
    مشكور يالغالي
    والله صراحة الدرس صعب لزمني مدة الي فهمته

    الله يوفقك وكمل ماعليك من نقص الردود

  4. #4
    التسجيل
    10-08-2008
    الدولة
    algerie
    المشاركات
    99

    رد: الدرس التــاسع منـ دورة c-script (المؤشرات)

    شكرا أخي العزيز



ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •