1 مرفق
[درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته....انقطعت عنكم فترة لذا تعويضا عن تأخرى اكتب هذا الدرس وهو كيفية عمل تأثيرات مناخية فى الطور الثلاثى الابعاد بالجيم ميكر
تخيل انك تصمم فى اللعبة ثم تريد ان تجعل السماء تمطر (سواء ان كان شتاء عادى او ثلج) فكيف تفعل ذلك؟؟؟ ركز معى
اول شىء نفعله هو ان نرسم شكل المطرة او كتلة الثلج التى تنهمر من السماء (ارسم المطرة كخط ابيض مائل والثلج ككرة بيضاء صغيرة) وسم هذه الرسمة ب spr_rain
الان نبدأ بوضع الاكواد التى تجعل الجليد يسقط.....
اول شىء نفعله هو ان نضع لقطعة الثلج او للمطرة متغير ونسميه z وليكن
z=200
وهذا المتغير سنستخدمه فى اسقاط قطرة المطرة او قطعة الثلج....كيف؟؟؟ سأشرح حالا
الان حان الوقت لكى نرسم المطرة فى الطور ثلاثى الابعاد......وطبعا من لديه خبرة فى مجال الجيم ميكر ثلاثى الابعاد يعرف ان الدالة المستخدمة هى
لنبدأ الان بوضع القيم الخاصة بهذه الدالة والمسماه بال arguments
كود:
d3d_draw_wall(x , y , z , x+2 , y+2 , z-15 , sprite_get_texture(spr_rain , 0) , 1 , 1)
الان كيف نجعل قطرة المطر تسقط؟؟ بأن نجعل الارتفاع يقل فتنزل قطرة المطر متجهه نحو الارض
وهذا الارتفاع هو المتغير الذى وضعته (z)
ويمكن عمل ذلك بأن نكتب فى الحدث step هذا الكود
z-=5
او اذا اردت ان تجعل الامطار تنهمر بسرعة متفاوتة فاكتب
ومعناها ان قيمة z ستنقص بمقدار 5 او بمقدار 8
والان هنا يأتى الخطأ الذى يقع فيه الكثير منا...ستظل المطرة الواحدة تسقط الى مالا نهاية.. فتخيل اننا سنصنع العشرات من هذا الاوبجكت فبالتالى سيزيد عددها فى الغرفة وتجعل اللعبة بطيئة جدا
لكى نمنع حدوث هذا يجب علينا ان نجعل لقيمة z حدا معينا اذا تجاوزته فان الاوبجكت يختفى من الغرفة...او بمعنى ادق يحدث له instance_destroy()
وهنا فى حدث step نكتب هذا الكود
كود:
if z<0 then instance_destroy()
وقيمة صفر هذه تستطيع انت تغييرها الى ما تريد لكنى وضعتها فى مثالى الموجود بالمرفقات لأن ارتفاع الارضية (floor) يساوى صفر
الان...هل نضع هذا الاوبجكت فى الغرفة؟؟؟...الجواب لا :wow: ...فليس منها فائدة فهى ستسقط قطرة واحدة فقط
اذا كيف سنجعل الامطار تنهمر؟؟؟ علينا الان ان نصنع اوبجكت خاص يجعل الامطار تنهمر وسنسمى هذا الاوبجكت obj_rain_control
ونضع فى الحدث step الخاص بهذا الاوبجيكت الجديد
كود:
instance_create(random(room_width) , random(room_height) , obj_rain
وطبعا وضعت random (room_width) و random(room_height) لكى يكون المطر موزع فى اماكن مختلفة فلو تجمعت الامطار فى مكان واحد لبدا هذا سخيفا
لكن مازال هناك مشكلة صغيرة...هى ان المطر قليل هنا ولن يكفى لعمل شتاء محترم فى لعبة محترمة
من انتاج عضو محترم ........لذا سنستخدم تعبير اغلبنا لا يستخدمه الا وهو repeat
وهذا التعبير عندما تكتبه وتكتب بجواره رقم ثم تكتب بعدهما حدث فان هذا يعنى ان الحدث الذى كتبته سيتكرر بعدد المرات التى كتبتها
فلنستخدم هذا التعبير للحصول على امطار اكثر
كود:
repeat (8)
instance_create(random (room_width) , random (room_height) , obj_rain)
ومعناها ان الاوبجكت المذكور سيتم خلقه ثمان مرات لكل step
طبعا تستطيع بدلا من وضع هذا التعبير كتابة الكود الخاص instance_create ثمانى مرات
الان شغل المثال وانظر النتيجة....مبهرة اليس كذلك؟؟؟ :biggthump
ارجو ان يكون هذا الدرس مفيد....والمثال موجود بالمرفقات يحتوى على طقس مثالى وصوت رعد :ponder: .....فى انتظار ردودكم...انتهى الدرس :35: :35:
والسلام عليكم ورحمة الله وبركاته
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
انا أطالع المثال :( أتشفف
مشتاقين حق حلبة تمطر علينا في قطر ^^
------------
أشكرك على درس أخوي وطريقة وايد عجبتني ^^ وخاصة عملت طريقة رسم سبرايت المطر ^^
يعني ممكن نحط (ورورد . ثلج . سهام . نيران . ألخ) بهذه طريقة ^^
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
وعليكم السلام ورحمة الله وبركاته
درس جداً مميز وكنا منتظرينه من زمان
ودروس المناخ تعجبني شكراً ليك اخوي الله يعطيك العافية
والى الأمام الدرس افادني كثير
شكراً
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
اقتباس:
المشاركة الأصلية كتبت بواسطة Prince of Sorrow
انا أطالع المثال :( أتشفف
مشتاقين حق حلبة تمطر علينا في قطر ^^
------------
أشكرك على درس أخوي وطريقة وايد عجبتني ^^ وخاصة عملت طريقة رسم سبرايت المطر ^^
يعني ممكن نحط (ورورد . ثلج . سهام . نيران . ألخ) بهذه طريقة ^^
لا تخف......رقصة المطر تنفع احيانا :D ........ياريت لو كانت تنفع
ان شاء الله تكون استفدت
اقتباس:
المشاركة الأصلية كتبت بواسطة باز يطير
وعليكم السلام ورحمة الله وبركاته
درس جداً مميز وكنا منتظرينه من زمان
ودروس المناخ تعجبني شكراً ليك اخوي الله يعطيك العافية
والى الأمام الدرس افادني كثير
شكراً
العفو واتمنى ان ترينا اعمالك فى مجال الثرى دى.....شد حيلك :biggthump
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
الدرس متميز جداً أخي العزيز..وبصراحة كنت أتمنى أن أجد مثله في المنتدى..
وفقك الله وهداك إلى سواء السبيل..
شكراً...
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
جزاك الله خير على الدرس المفيد..
والمثال الأصوات فيه رائعة..
أتمنى منك الاستمرار في الدروس ...
وشكرا لك..
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
شكراً على الدرس.... بالتوفيق فى دروسك الجايه >> منتظرها"
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
درس جميل وممتاز
كنت بسويه درس بالمنتدى ولكنك سبقتني عليه
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
باتمان: شكرا على الرد....وبانتظار جديدك :)
ملطوش: صوت البرق مزعج قليلا...اليس كذلك؟؟ :biggthump
احمد صقر: ان شاء الله نشوفها فى بركان الغضب النسخة الكاملة ...بالتوفيق ;)
ساموجى: المثال كان عندى من زمان وكنت انوى شرحه لكن حدثت ظروف منعتنى منه
من سبق اكل النبق.......لو لديك افكار ياريت تضيفها :32:
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
جزاك الله خيراً على الدرس المفيد :) عندما تعمل لعبة ثلاثية الأبعاد;)
وشكراً جزيلً لك :D
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
شكرًا على الدرس مميز ويجعل الألعاب مميزه ;)
مع قل خبرتيه بالــ 3 دي ع الميكر لكني فهمت الدرس 100%
++ أول مره أعلم بوجود repeat كنت أستخدم for لكنها أصعب وتسبب لي مشاكل إذا كررتها -_-
شكرًا ونتظر المزيد من التميز
أنا عندي أفكار حلوه في راسي لكني مازلت في مرحلت instance_destroy .... ><"
:D
بالتوفيق
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
شكرا على الدرس الجميل المفيد ولا تحرمنا من دروسك المميزة
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
Kakarot: العفو..... طلبك مجاب ان شاء الله.....طبعا فاهمنى ;)
من التراب: وينك؟؟؟ياريت لو هذا الدرس يشجعك قليلا لتعود لحالة instance_create() فى الحدث step (يعنى تظل تنتج باستمرار) :D
سمسم المبرمج: العفو اخى....وان شاء الله اى فكرة جيدة سوف اضعها لكم
رد: [درس] كيفية عمل تأثيرات مناخية فى الطور ثلاثى الابعاد
اقتباس:
المشاركة الأصلية كتبت بواسطة d.a.m.h
من التراب: وينك؟؟؟ياريت لو هذا الدرس يشجعك قليلا لتعود لحالة instance_create() فى الحدث step (يعنى تظل تنتج باستمرار) :D
أنا شبه موجود :dead:
instance_create في الحدث step معناها تتجمد اللعبه وماشي فايده ><"
الحاله القادمه قريب ReBuilding وإن شاء الله كل شي بيكون تماااااام بس دعواتكم
درسك شجعني كثير ونزلت المثال كان روعه وصراحه حبيت ألعاب الـ 3 دي عالميكر
بالتوفيق ..