الدرس الثالث:-
اوك عزيزي اتمنى ان تكون قد حصلت الفائدة من الدروس السابقة واشكر جميع الاعضاء والردوود المشجعة وبصراحة من الجميل ان نرى منتدى عربي يهتم بالالعاب والعلوم واتمنى ان يكون هذا المنتدى هوا قبلة لكل من يحب تعلم برمجة الالعاب وطلب صغير الى مشرفين المنتدى واتمنى ان ان لا اكون اطلب الكثير اخواني الاعزاء ندخل الى المنتدى ونحن نبحث عن هذا الفايل او ذاك وعند دخولنا الى الموضوع
وفرحتنا باننا وجدنا الفايل او المرفق مع الموضوع (مثلاً امثلة للجيم ميكر) تتحطم امالنا على صخرة الروابط المكسورة من السبب هل هو العضوا المسكين الذي قام شاكرا بوضع الملف كلا ولكن بكل بساطة الجميع هنا يستخدمون مواقع تحميل فايلات مجانية او ينؤون روابط من مواقع اخرى مؤقتة وبعد قترة من الوقت عندما تحذف مواقع التحميل الفايل الذي حمل لها (حذف بكل دوري ) لا يبقى لنا سوى رابط مكسور وامال محطمة ومواضيع ليس لها اهمية سوى ما تحتلة من الذاكرة من بايتات طلبي هنا الامور المهمة ملاً نسخة للبرنامج جيم ميكر نسخة للفايلات المهمة مثل الامثلة الحيوية واي فايل يحمل اهمية للاعضاء والزوار ان يوضع على سيرفر المنتدى وبذلك تكون لدينا مكتبة خاصة للمنتدى واتصور ان الاعضاء ان طلب منهم مشاركتنا بما لديهم من فايلات مهمة هذة فكرتي البسيطة ارجو ان كنتم تروها مهمة ان تأخذوها بعين الاعتبار وانا شاكر لكم .
نعود الان الى موضوع عالم ثلاثي الابعاد
عزيزي اليوم ننتقل الى تاثير مهم بقائمة التاثيرات event وهو التاثير draw وترجمتة يرسم او رسم عزيزي هذا الدلة مهمة ليس لمالنا فقط ولكن اي كل مجسم تريد رسمة طريقت تعريفة تكون عبر هذة الدالة طبعا هنا نحتاج للرياضيات قليلا مثل الحجوم والمساحات
نعود الان الى الجدار الاساسي وهو obj_wall_basic الذي منة ترث بقية الجدران خواصها نضيف التاثير draw من القائمة add event ونضع مربع الكود (الذي ذكرنا ويكون شكلة على هيئة ورقة ) وداخل هذا المربع نكتب الكود الاتي
{
d3d_draw_wall(x1,y1,z1,x2,y2,z2,tex,1,1);
}
اوك لم افهم ما هذة الرموز لا تستعجل عزيزي الدالةd3d_draw_wall هي دالة خاصة او جاهزة تساعد على رسم الجدران ولكن يجب ان نعرف بين الاقواس التي تلي التعلمية احداثيات الجدران وكلنا نعرف الاحدايات x,y ,z
ولكن لماذا الاكس مكرر مرتان والواي مرتان بكل بساطة في هذا الكود خصص الاكس للجدران الافقية وبتلاعب بقيمة الموجب والسالب للاكس نستطيع ان نرسم صورة بالفضاء لمضلع (مستطيل ) يتكون من احداي واحد فقط مع استخدام القليل من قوانين الزوايا الجيب والجتا ولكن المهم تعريف هذة المتغيرات واركز هنا على كلمة تعريف فلا نقوم بعمل شيء قبل تعريفه ما هو عرفنا المتغيرات الستة ولكن ما هذة الكلمة tex في النهاية بكل بساطة هذا متغير وهو اختصار لكلمة
texture
وهي كلمة نسيج ونستخدم المتغير هنى لاكساء الجدران
نعود الان لنكمل واعطاء قيم للمتغيرات في البداية الحائط الافقي نضيف من قائمة add event
التاير create ومربع كود ونكتب الكود الاتي
{
x1 =
x-16;
x2 =
x+16;
y1 =
y;
y2 =
y;
z1 = 32;
z2 = 0;
tex = background_get_texture(
texture_wall);
}
سنرى اننا اعطينا قيمة للاكس وتركنا الواي على حالة وقيمة واحدة z وستمثل الارتفاع
وقد اعطيا المتغير tex قيمة باستخدام الدالة background_get_texture وتعني هذة الدالة جلب الخلفية وممكن تعين خلفية بذكر اسمها بعد الاقواس التي تلي الدالة ولكن من اين ناتي بهذة الاخلفيات بكل بساطة نعرفها
بالقائمة خلفيات background واترك لك تعين الاسماء ونى بهذا الكود ان اسم الخلفية الخاصة بالجدران texture_wall وهذا مجرد اسم تستطيع التلاعب به وليس دالة كل جسم نحتاج اكسائة نضيف له صورة المجموع هو صورة للحائط صورة للسقف وصورة للارضية ثلاث صور
نعود الان الى الحائط العامودي ونعيد نفس الخطوات مع الكود التالي
{
x1 =
x;
x2 =
x;
y1 =
y-16;
y2 =
y+16;
z1 = 32;
z2 = 0;
tex = background_get_texture(
texture_wall);
}
مبروك صار لدينا جدران وبقي منضور الكامرة والسقف والارضية
اوك عزيزي تذكر اللاعب او الكرة رمز اللاعب وكيف اضفنا له امر carete من اجل داله الاحتكاك في السابق(الدرس الثاني) نفتح مربع الكود ذاك ونضيف تحت دالة الاحتكاك مباشرة الكود التي
d3d_start();
d3d_set_hidden(
true);
d3d_set_lighting(
false);
d3d_set_culling(
false);
texture_set_interpolation(
true);
ومعناة الاتي d3d_start هذة الدالة بكل بساطة هي اعلان ببداية استدخدام الدوال او بيئة الابعاد اللاثة
تاتي بعدها d3d_set_hidden تعني هذة الدالة اخفاء الخطوط الامتقاطعة كيف ذالك عزيزي كل صزرة تتحرك تكون حركتها بشكل طبقات مثل الكارتون يرسمون الشخصية على طبقة شفافة وخلفة الخلفية هنا اللاعب عندما يتحرك من النقطة الف الى باء يحتاج مثلا الى ثلاث طبقات لو فرضنا اننا سمحنا باضهار هذة الطبقات عند مرور اللعب جنب جدار سنرى صورة فراغ بالجدار نتيجة تقاطع هذة الطبقات مع تكوين الجدار وللحد من ذالك نضع بعد التعليمية d3d_set_hidden وبين الاقواس الحاصرة الامر true اي حقيقة او تفعيل وبذالك حللنا المشكلة
السطر الثانيd3d_set_lighting دالة تهتم بمصادر الضوء واعطاء محاكات للواقع من حي الاضائة وفي مثالنا هذا لا نحتاجها نقوم بالغائها الان ربما نحتاجها فيما بعد باعطاء قيمةfalse بعد التعلمية في الاقواس الحاصرة
الدالةd3d_set_culling تحتاج الى الكثير من الشرح لذالك نهملها الان حتى نستخدمها فعليا
والدالة الاخيرة texture_set_interpolation تذكرون عملية الاكساء التي تحدثنا عنها هذة الدالة هي التي تقوم بتفعيل جميع دوال الاكساء فبدونها بقية دوال الاكساء الا قيمة لها فلذالك نعطيها القيمة true
وك عرفت جميع الدوال والمتغيرات بقي لدينا تعريف السقف والارضية ووجهت نضر اللاعب ولكن يجب ان تنتضر الدرس القادم
الدرس الاخير :-
الان نشرح الكود الذي يتعلق بانشاء السقف والارضية وموقع النظر