منقول عن الاخ طيف الساهر في منتدى المنتدى :-
في game maker عليك في البداية اختيار ثلاثة اشكال الشكل الاول نمثلة بكرة صغيرة وهو الشخصية الرئيسية وقطعتان تمثلان الجدران العامودية والافقية يجب مراعات ان تكون القطع نحيفة نوع ما حتى عندما تقوم برسم خريطة العالم الوهمي تتوفر لك مساحة كافية وتكو قطعة عامودية وقطعة افقية
بعد اضافة الاشكال الى sprites نتجة الى المحطة التالية وهي الفايل objects لكي نضيف المؤثرات اللازمة للتحريك لحد الان نحن نعمل في بيئة ثنائي الابعاد اول ما نقوم به هو رايت كلك على الفايل objects اختيار الامر add objects وعندما تطلب النافذة تحديد الشكل من sprites والذي سنضيف له التائثيرات لا نحدد له اي كل نتركة خالي فهذا الامر هو القاعدة الذي سترث منة بقية الجدران الخواص الاساسية بدل تعريف الكود لكل جدار نجعل جدار واحد يحتوي على خواص معينة ترث منة البقية خواصة ولنسمية مثلاً obj_wall_basic نغلق نعين لجدار الامر solid الموجود في الواجها وهذا يعني ان الجدار صلب نغلق الواجها بدون اضافة اي تاثير وذالك النا سنضيف التاثيرات في الخطوات التالية الان في الفايل objects نعرف بقية الجدران عن طريق add objects واختيار الجدار الافقي وثم الجدار العامودي هناك خطوة مهمة هنا توجد في الواجها اسفل من الامر solid امر اسمه parent وترجمتة هو الوالدين او الاهل لكل من الجدار العامودي والافقي نعين في هذا الحقل obj_wall_basic اي انهما سيرثان خواصهما الاساسة عن هذا الجدار الوهمي الذي انشئناه طبعا لا ننسا ان نحدد لكل جدار الامر solid اي صلب امر يفيدنا عند عمل كود التصادم مع الجدار .
الان بعد عمل كل هذة الاوامر نتجة الى الكرة او الشخصية الاساسية اللعب نعرفها بالاسلوب السابق في الفايل objects وضيف عليها التاثيرات التالية من الامر add event نعرف المفتاح up ونضع به الكود التالي


{

if (speed < 2) speed = min(2,speed+0.4);


}

ان كنت لا تعرف اين تضع الكود هذا امر بسيط عن اضافة المفتاح up هناك قائمة على يمينك تعطيك خيارات مثل خيارات الحركة وخيارت الرسم اضن مستخدمي game make يعرفونها جيداً
اذهب الى القائمةcontrol اي تحكم واختار code شكلة مثل الورقة الورقة البيضاء ليس التي عليها مثلث اخضر واضف بها هذا الكود هذه الداله speed عندما تعطى سرعة معينة تعمل ولكن نحن لا نريد الانطلاق ان يكون بسرعة نريد الحركة تكون متدرجة مثلا انت عندما تركض لا تنطلق باقصى سرعتك فورا هناء فترة قبل ان تصل سرعتك لهذا نحن نستخدم الدالة min هذة الدالة عملها اختيار اقل قيمة بين القوسين في كل مرة تضيف للسرعة قيمة 0.4 عند استمرار الضغط حتى تصل للسرعة القسوى وقد حدنا السرعة القسوى ب (2) هذا هو شرح الكود نضيف الان المفتاح down وبنفس الخطوات السابقة نضيف الكود
{

if (
speed > -2) speed = max(-2,speed-0.4);

}
ولكن القيمة يجب ان ا تكون بالسالب ولهذا نحن نستعين هنا بدالة ثانية عملها عكس الدالة min وهي الدالة max لحد الان هل لديك اي مشكلة في فهم الامور اضفنا اتجاهي الامام والخلف
نضيف الان الايمين واليسار ولكن نحن نتحدث عن عالم ثلاثي الابعاد مثلا انت في الواقع عندما تمشي للامام وسمعت شخص يناديك عن يمينك ماذا تفعل بالبداية تستدير نحو الشخص ثم تمشي باتجاه لهذا نحن يجب ان نجعل الجسم يستدير اي ان الاتجاة اليمين واليسار للاستدارة فقط نضيف المفتاح اتجاة اليسار ونضع الكود التالي
{

direction += 3;

}

ونضيف اليمين ونضع الكود التالي
{

direction -= 3;

}

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

الدرس الثاني :-
في الدرس السابق وصلنا الى اضافة الاتجاهات للكرة او اللاعب وتعريف الجدران

وانا بصراحة اقول اني رغم الشرح ولكن من الواجب وضع مثال يساند الشرح وانا اوعدك اني في اقرب فرصة ساقوم بتوفير الامثلة .

الان وضعنا خطوات الحركة للاعب اكيد عندما نصل الى جدار او عند الاصطدام بجدار يجب ان يكون هناك تاثير معين على رمزاللاعب او الكرة التي اعتبرنها اللاعب في الدرس الاول.. (دبل كللك) على الكرة التي تمثل اللاعب من الفايل objects بالطبع وهذا الفيل الذي تضاف على الاشكال او الرسومات اللعبة كل الاضافات والتاثيرات والحركات فارجو مراعات ذالك عند ذكر أي اضافة تاثير يجب معرفة انني اقصد الاشكال الموجودة في الفايل objects المهم.. في الواجهة التي تظهر نضيف من add event الامر collision والذي معناة التصادم عند الضغط على هذا الامر تضهر قائمة صغيرة منبثقة تطلب منا تحديد أي جسم عند التصادم معه يحدث التاثير وهنا نحدد الجدار الوهمي الذي ذكرناه بالدرس الاول ومنة ترث بقية الجدران خواصه واعطينا اسم لهذا الجدار obj_wall_basic

بعد اضافة الامر collision نضيف الية الكود التالي :




{



speed = 0;

}



سوف اشرح في درس اخر اساسية لغة game maker ولكن يرجى الانتباه

ان كل كود يبداء بقوس المجموعة } وينتهي به { وفي نهاية كل سطر او امر نضع الفارزة المنقوطة ; نرى بعض التشابة بين هذة الخواص وخواص لغة سي بلاس بلاس شرح بسيط عند الاستطام ستكون السرعة صفر هناك امر في البرمجة اسمة التبادل أي ان المتغير الو الدالة تتغير قيمتها حسب الحدث عند ضغط مفتاح up ستعطى قيمة جديدة للدالة speed وعند الاصطدام ستكون قيمتها صفر وهكذا . بعد ان اصبح كل العناصر جاهزة تستطيع تصميم الغرفة او room

اختر الابعاد التي تريد وارسم باستخدام الجدران الافقية والعامودية الاشكال التي تريدها من غرف و ممرات.

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

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

ولان امر الاحتكاك يجب ان يكون فعال على الدوام من القائمة add event

نختار امر create ترجمتة خلق عزيز أي صفة نحب ان تكون فعالة بشكل دائم

او ان تعمل بمجرد تشغيل اللعبة يجب ان نضعها بالامر create ويكون شكلة بشكل مصباح كهربائي ونضع الان مربع الكود الذي وصفتة بالدرس الاول وندخل الكود التالي






{



friction = 0.2;

}




افضل نسبة هي 0,2 لتعطي محاكات للواقع



واخيرا قبل ان ننهي العمل في البيئة الثنائية هناك امر مهم

تذكرون الدالة direction التي وضعنها في المفتاح اليمين واليسار وتعطي الجسم 360 قابلية للدوران ولكن سؤال مهم الدوران على أي محور هل الجسم يدور حول محور معين ام ماذا لجعلة يدور حول نفسة نعمل الاتي من القائمة add event نختار الامر step أي خطوات تضهر قائمة نختار منها

End step ومن قائمة الافعال هناك امر في القائمة main1 وهو على شكل كرة حمراء في اسفلها سهم وعلى جانبها سهم واسم الامر هو Transform the sprite تظهر قائمة في الحقل angle أي الزاوية نضع كلمة direction

وهنا حددنا مكان الدائرة بالنسبة للجسم حيث يكون محورها في الوسط اي الجسم يدور حول نفسة

عزيزي اكملنا العمل في البيئة الثنائية ولكن هل انت جاهز لجعل هذا البناء ثلاثي الابعاد لا اقصد هنا الاستعداد النفسي اقصد هل برنامجك game maker مستعد نعم عزيزي فالبرنامج اذا لم يكن مسجل او انك لم تفعل الكراك له

فدوال الثريدي لا تعمل لدية ويؤسفني ان ستتوقف هنا لكن لا تحزن كل ما عليك ان تبحث عن الكراك وتفعيلة لتفتح ابواب البرنامج على مصرعيها



الدرس القادم سيشمل كيفية خلق منضور الكامرة او النظر

اعطاء ارتفاع للجدران وبناء ارضية وسقف

واكساء الجدران والسقف والارضية
عنوان الامثلة :-
http://www.montada.com/showthread.php?t=444424