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

الموضوع: [درس] عمل شخصية بالكامل فى الجيم ميكر

  1. #1
    التسجيل
    08-10-2005
    الدولة
    مصر
    المشاركات
    634

    [درس] عمل شخصية بالكامل فى الجيم ميكر

    السلام عليكم ورحمة الله وبركاته
    منذ زمن بعيد لم اكتب دروس وذلك بسبب ظروف كثيرة...حسنا..احاول ان اعوض ما فاتنى واكتب درس
    درس اليوم عن كيفية عمل حركات اساسية لشخصية مثل الجرى والقفز والاصطدام بالارضيات والحوائط
    اسمع شخص يقول..وما الجديد فى هذا؟؟ كل مبتدىء فى الجيم ميكر يعلم هذه الاشياء..وهنا اقول نعم لكن...والاعضاء يعرضون العابهم لاحظت فى بعض الالعاب (واخص بالذكر العاب البلاتفورم)اخطاء فى التصادم منها اخطاء طفيفة لا تؤثر على اللعبة ومنها اخطاء فادحة...لذا فهذا الدرس قد يفيد بعض الاعضاء الذين يريدون ان يجعلوا امكانيات العابهم افضل واشرح من خلاله دوال التصادم الاساسية ووظائفها بالتفصيل.
    حسنا....الان نبدأ الدرس
    1-
    اول ما سنفعله بعد فتح البرنامج هو ادخال السبرايتس الخاصة بالشخصية وقد اخترت فى المثال الذى ارفقته مع
    الدرس صور سونيك وهو واقف,يجرى ويقفز
    ملحوظة:
    دائما حاول ان تسمى السبرايتس باسماء معبرة مثل spr_sonic_run او spr_sonic_stand
    فهذا ينظم عملك بطريقة افضل
    2-
    قبل ان نفعل اى شىء علينا ان نضبط الBounding box..لكن ماهو الBounding box؟؟


    اذا نظرنا الى هذه الصورة نجد ان هناك مربع تكون حول السبرايت وهذا المربع اختيارات هى Automatic , Full Image, Manual
    ثم هناك احداثيات هى Left,Right,Top,Bottom
    فكرة الBounding box هى انه يكون مربع يحول السبرايت وهذا المربع هو الذى يقوم بعملية الاصطدام
    مع اى كائن فى اللعبة..انظر الى الصورة



    هنا نرى ان صورة الدب اصطدمت بصورة الكرة من خلال هذه المربعات..لكن طبعا هذا المربع وهمى
    فاذا اخترنا Automatic فان البرنامج سيقوم بوضع المربع حول السبرايت فقط
    اما Full Image فانه سيجعلها على الصورة كاملة
    لكن Manual عند اختيارها فانها ستنشط جزء الاحداثيات ومنها تضع القيم بيدك والتى تراها مناسبة
    حسنا...الان عرفنا الBounding box لكننا لم نعرف بعد ما معنى ان نضبطه
    ضبطه التى اقصدها هى ان تجعل كل القيم واحدة لكل السبرايتس...كيف؟؟
    انظر هنا!!

    ويجب ايضا ان تضبط الOrigin وتجعله متساو فى الثلاث صور وان تجعل ايضا الصور



    من اسفل لها نفس الابعاد
    وهذه هى الخطوة الاولى فى اصلاح التصادم الخاص بلعبتك
    سنقوم بعد ذلك بادخال سبرايتس خاصة لعمل الارض وانا دائما اقوم برسم مربع ثم اقوم بتوزيعه فى الغرفة وبعدها اخفيه...ارسم انت ارضيتك المناسبة فهذا ليس موضوعنا الان.
    ثم ابدأ بادخال الاوبجيكت الخاص بالاعب وليكن obj_sonic والاوبجكت الخاص بالارض ويسمى obj_land
    اجعل الارضية solid من خلال المربع الموجود بعد فتح obj_land
    الان سنبدأ العمل الجاد..لذا يجب التركيز
    افتح obj_sonic واختر من قائمة الاحداث الحدث create
    وبعدها اجذب Excute a peice of code الموجودة فى قائمة control
    انظر هنا

    افتحها واكتب فيها هذه المتغيرات

    كود:
     
    {
    
    run=0
    jump=0
    }
    ماهى هذه المتغيرات؟؟

    المتغير run هو المتغير الخاص بالجرى فاذا كانت قيمته تساوى صفر

    فهذا يعنى انه واقف اما اذا كان =1 اذا فالشخصية تجرى

    jump هو متغير يعبر عن القفز فلو ان قيمته تساوى صفر يكون معناه ان
    اللاعب ملامس للارضية (اى ثابت عليها سواء كان واقف اى run=0 او يجرى run=1 )



    هنا دور الجاذبية...اذا لم تقم بوضع الجاذبية فى لعبتك فان اللاعب يظل معلقا اذا قفز
    ومنها يأتى سؤال..هل الجاذبية مؤقتة ام دائمة...هل اذا قفزت انت فى مرة ستهبط على الارض وفى مرة اخرى ستظل معلق فى الهواء؟؟..الاجابة:الجاذبية دائمة واذا كان الحدث دائم فاننا نستعمل الحدث step
    السؤال الاخر هو..متى تشعر بتأثير الجاذبية؟؟ دائما تشعر به وانت فى الهواء عندما تقفز اما عندما تنزل الى الارض فلا تشعر بها..فالجاذبية لا تجذبك ناحية الارض اذا كنت ملامس لها...اذا لعمل جاذبية فى الجيم ميكر نختار الحدث step
    ونجذب excute a peice of code ثم نكتب داخلها هذا الكود

    كود:
     
    {
     
    
    if place_free(x,y) {gravity=0.5} else {gravity=0}
    if run=1 {sprite_index=spr_sonic_run;image_speed=0.5} if run=0 && jump=0 && vspeed=0 {sprite_index=spr_sonic_stand}
    if run=0 && jump=1 {sprite_index=spr_sonic_jump;image_speed=1} if vspeed!=0 {sprite_index=spr_sonic_jump;image_speed=1} }
    ومعنى هذا الكود واضح..يعنى اذا كان المكان حر وغير مصطدم بشىء (ارضية او غيره)...وهذا المكان حددنا احداثياته بx,y حيث انهما قيمتين معروفين

    للبرنامج تدل على احداثيات الكائن الذى تكتب فيه هذا الكود فان الجاذبية تكون مساوية 0.5 والا (اى اذا كان ملامس لأى شىء) فان الجاذبية ستكون مساوية لصفر.

    الاكواد الخرى شرحتها من قبل لو لم تفهمها سأعيد شرحها مرة اخرى
    الخطوة التالية هى عند حدث اصطدام اللاعب بالارضية..انظر هنا

    نضع هذا الكود



    كود:
     
    
    { move_contact_solid(direction,12)
    if vspeed>0 { jump=0 run=0 } vspeed=0 }
    معنى هذا الكود:

    اذا اصطدمت بالارضية فان هناك اتصال سيحدث بين اللاعب والارضية الصلبة(وعرفنا كيف نجعل الارضية solid)





    وهذا الاتصال يكون فى اتجاه direction (اى يكون فى الاتجاه الذى يتجه اليه اللاعب يعنى لو اللاعب يتجه يمينا فيكون الاتجاه لليمين وان كان لليسار

    فالاتجاه لليسار)
    اما القيمة 12 فهى تعبر عن القوة القصوى للتصادم وكلما زادت كلما كان الثبوت على الارض اكثر ونعطى مثال:





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

    ان يستقر على الارض لذا حاول ان يكون هناك تناسب بين القيمتين
    طبعا الكود التالى للتحكم فى المتغيرات حيث يجعل متغير القفز يساوى صفر فهذا معناه انه مستقر على الارض وايضا نجعل متغير الجرى مساوى لصفر ايضا
    الكود الاخير vspeed=0 لابد منه والا ستجد ان اللاعب يستقر على الارض فترة قصيرة ثم يخترق الارضية
    وينزل بسرعة كبيرة منها...لاحظ ايضا ان الكود يجب ان يكون بهذا الترتيب فلو انك عكسته سيسبب خلل فى التصادم..ممكن تجرب اذا شئت
    الان عند الضغط على زر اليسار..انظر هنا

    ضع الكود:


    كود:
    {
    
    image_xscale=-1
    if jump=0 then run=1 }
    الكود الاول يجعل صورة الشخصية تنظر للاتجاه الاخر (وهذه نستعملها بدلا من ان نضع صروة للاعب وهو ينظر لليمين وصورة اخرى وهو ينظر لليسار)

    الكود الثانى لتغيير قيمة متغر الجرى كما كتبت من قبل

    الان الجزء المهم...الان وانت واقف ومستقر على الارض اسألك هل تستطيع التحرك ؟؟
    الاجابة هى انك ستتحرك اذا لم يكن هناك عائق فى طريقك..اى اذا كان امامك وخلفك مساحات خالية...لذا ضع الكود الاتى


    كود:
    {
    
    if place_free(x-5,y) {x-=5}
    }
    حيث اننا يهمنا ان تكون المساحة خالية على بعد 5px من يساره لأنه سيتحرك جهة اليسار

    ثم نكتب الكود x-=5 لكى يتحرك اى انه يتحرك فى حالة تحقق ذلك

    وهذا الجزء الاول...اما الاخر فاذكره بمثال وهو مثال سوبر ماريو...عندما يقفز سوبر ماريو فانه يتحرك يمينا ويسارا وهو قافز
    بشرط ان يكون هناك مساحات خالية على يساره و يمينه و اعلاه واسفله لذا نضيف هذا الكود:

    كود:
    {
    
    if place_free(x-5,y-8) {x-=5;y-=8;move_contact_solid(270,12)}
    }
    ومعناه..اذا كانت المساحة خالية امام اللاعب على بعد 5pxمن يساره وعلى على بعد 8px من اعلاه فانه سيتحرك

    فى اتجاه x مسافة 5 ناحية اليسار وفى اتجاه y لاعلى مسافة 8

    وهذا الجزء الذى يهمله معظم الاعضاء فى العابهم
    الان كما فعلت هذا لحدث ضغط زر اليسار افعله مع الحدث الخاص بضغط زر اليمين مع عكس القيم image_xscale,x
    الان الجزء قبل الاخير
    وهو كيفية القفز..نسألك متى تستطيع القفز؟؟ والجواب يكون عندما تكون ملامس الارضية
    فانت لا تستطيع القفز وانت فى الهواء لأن الجاذبية تؤثر عليك وتعوق اتجاهك لأعلى...لذا فى الحدث الخاص بضغط زر القفز اكتب هذا الكود


    كود:
    {
    
    if place_metting(x,y+1,obj_land)
    { jump=1
    run=0 vspeed=-10 } }
    ومعناه..اذا كان اللاعب ملامس للارضية سواء على يمينه او يساره او اسفله بمقداار 1px فسيكون هناك قفز

    وطبعا غير قيم المتغيرات اياها واجعله يقفز عن طريق كتابة vspeed= وقيمتها تكون سالبة

    يبقى شىء صغير لننتقل لاخر نقطة وهو عندما ترفع يدك عن زر اليسار فان اللاعب يتوقف ...يجب عليك ان تغير صورته وانظر هذه الجزئية فى مثالى
    الان الجزء الاخير:
    وهو هل سيكون التصادم ممتاز ولا عيوب به؟؟
    هنا اقول لك حتى الان تقريبا لا..لكن بخطوة صغيرة سيصبح تمام باذن الله.كيف؟؟
    سندخل صورة اخرى صغيرة عبارة عن مربع بلون مخالف للارضية او مثلها اذا اردت ونضيف الاوبجيكت ونختاره
    وسنسميه obj_border
    انظر الصور








    بعد ان ادخلته اجعله مطابق ل obj_land من خلال parent كما فى الصورة

    وضعها على الحواف كما فى الصورة

    وبهذا يكون التصادم كامل ومتقن....المثال موجود بالمرفقات كتطبيق لهذا الدرس المطول
    ارجو ان اكون وفقت فى الشرح وان يستفيد كل عضو من هذا الدرس الطويل...فى انتظار اى استفسار او سؤال...وتطبيق هذا الدرس موجود بالمرفقات
    والسلام عليكم
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip sonic.zip‏ (8.1 كيلوبايت, المشاهدات 135)
    التعديل الأخير تم بواسطة PrinceOfSorrow ; 30-01-2008 الساعة 10:15 AM

  2. #2
    التسجيل
    20-08-2004
    الدولة
    الإمارات العربية المتحدة
    المشاركات
    2,452

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    انا اشهد انك اكثرنا معرفة بالجيم ميكر

    ودرسك هذا دليل على كلامي

    درس مفيد جدا سواء للمبتدئين او المحترفين

    شكرا لك اخي على هذا المجهود

  3. #3
    التسجيل
    08-10-2005
    الدولة
    مصر
    المشاركات
    634

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    اقتباس المشاركة الأصلية كتبت بواسطة sony20 مشاهدة المشاركة
    انا اشهد انك اكثرنا معرفة بالجيم ميكر

    ودرسك هذا دليل على كلامي

    درس مفيد جدا سواء للمبتدئين او المحترفين

    شكرا لك اخي على هذا المجهود
    العفو اخى العزيز...وهذا المثال اضعه على المدى الطويل فقد لا يستفيد منه احد فى الوقت الحالى لكن فى يوم ما سوف يحتاج اليه اى عضو فى بدايته مع الجيم ميكر..وشكرا على الرد المشجع

  4. #4
    الصورة الرمزية kakarot
    kakarot غير متصل عضو مميز في منتدى التسجيلات الإسلامية
    التسجيل
    14-11-2005
    الدولة
    jordan
    المشاركات
    2,620

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    الله يجزيك الخير
    صراحة أبصم إنك خبير
    إن شاء الله أستفيد من الدرس ^^
    مشكوور

  5. #5
    التسجيل
    24-01-2006
    الدولة
    QATAR
    المشاركات
    4,098

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    وعليكم السلام ورحمة الله وبركاته

    دخلت الدرس ولم اكن اعرف انني مازلت جاهلا امام خبرتك في تصادم في جيم ميكر
    بصراحة غطيت على الماسك وتعلمت منك الكثير
    بارك الله فيك وعلى هذا الدرس رائع

    تم ترشيح وجاري تطبيق هذه خاصية في لعبتي Masked Dragoon ماشاء الله
    ستكون لعبة حصاد الذي تعلمته من مهاراتكم ^^

    Thanks A Lot

  6. #6
    التسجيل
    08-10-2005
    الدولة
    مصر
    المشاركات
    634

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    kakarot== العفو....وباذن الله ارى منك لعبة جيدة
    Prince of sorrow== شكرا على ردك وباذن الله ارى الديمو قريبا جدا

  7. #7
    التسجيل
    19-03-2005
    الدولة
    العين
    المشاركات
    1,261

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    ما شاء الله عليك
    الصراحة الدرس كان مشوق للكل مبتدئين ومحترفين
    والكل إستفاد
    ---
    عجبني إستخدامك للكود بدل الأيقونات <<<< يسهل صياغت الدرس ويقلل الصور ^.^
    تسلم على الدرس المطول وفي ميزان حسناتك
    حمستني أكتب دروس في القيم ميكر ^..^

    بالتوفيق
    ليس العيب أن تقع العيب أن تضل على الأرض ولا تقف مجددًا
    I was GameMakerer, may back...I'M BACK o..o

    دردشها دردش دردشها

    ~.~

  8. #8
    التسجيل
    02-04-2004
    المشاركات
    120

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    شكرالى على الدرس المفيد
    CatmanComic1

    العدد 1
    من قصص الرجل القط المصوره حاليا على الايفون وقريبا على الايباد

  9. #9
    التسجيل
    08-08-2003
    الدولة
    &Oslash;...In My Painest Dreams...&Oslash;
    المشاركات
    344

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    مشكوووووووووووووووووور عالدرسسسسسسسسسسسسس الحلووووووووووووو




    ..كنوز لم يتم اكتاشفها من قبل الكثيرين...
    اذكار...{الا بذكر الله تطمئن القلوب}..اذكر الله يذكرك

    قل سبحان الله وبحمده 100 مره تغفر ذنوبك وان كانت مثل زبد البحر
    لا تستصعبها هيا رددها

  10. #10
    التسجيل
    19-10-2007
    الدولة
    في الجانب المظلم من الـــــــDark basic
    المشاركات
    985

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    بسم الله ماشـــــــــــاء الله على الشرح المميز هذا أخي.............أستمر بهذا الأسلوب الجميل

  11. #11
    التسجيل
    17-10-2008
    المشاركات
    52

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    الموضوع جيد لكن الصور غير ظاهرة

  12. #12
    التسجيل
    09-09-2005
    الدولة
    العراق - بغداد / سوريا - دمشق
    المشاركات
    1,668

    رد: [درس] عمل شخصية بالكامل فى الجيم ميكر

    اقتباس المشاركة الأصلية كتبت بواسطة يوسف ايمن محمد مشاهدة المشاركة
    الموضوع جيد لكن الصور غير ظاهرة
    أخي العزيز يُمنع الرد على المواضيع القديمة ( ألتي تجاوزت ال 3 أشهر ) ..


    مُخالف = قفل

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

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