السلام عليكم ورحمة الله وبركاته....اكتب اليكم هذا الدرس بعد فوز منتخب مصر على منتخب انجولا
وباذن الله بالتوفيق لمنتخبنا
اليوم اكتب عن درس فكرته قديمة لكنه جديد على بعض الاعضاء لم يستعملها كثير من الناس فى الجيم ميكر
الا وهى فكرة المشهدين الموجودين فى غرفة واحدة
الفكرة بكل بساطة ان يكون هناك لاعبان وكل لاعب موجود فى نفس المرحلة لكن فى مكان مختلف
لذا فان الغرفة تنقسم الى جزئين سواء بالطول او بالعرض ويكون لكل لاعب جزئية اومشهد يلعب من خلاله
وبالنظر الى هذه الصورة يمكن ان نفهم هذه كلماتى السابقة
كيفية عمل مشهدين فى غرفة واحدة:
اول شىء سنفعله هو ان نقوم بادخال صور اللاعبين (وفى المثال الذى صنعته وضعت اللاعب الاول صورة
لكرة باللون الازرق والاخر كرة باللون الاحمر)
ادخلها ككائن وضع بها احداث التحريك كما بالصورة
بعدها سنقوم بادخال الview كما فى الصورة
وكلها طبعا اشياء معروفة
الان ادخل object ولنسميها مثلا ob_view واختر منها الحدث create
ومنه اختر excute a piece of code ثم اكتب هذ الكود
الان نشرح معنى هذا الكود::كود:{ view_yport[0]=0 view_hport[0]=240 view_yport[1]=240 view_hport[1]=240 }
عندما قمت بادخال الview فانك ترى فى الغرفة مربع هذا الview
حسن....view_yport[0] تدل على قيمة هذا المربع الذى سيتكون وتكون قيمته بصفر (اى تكون بدايته
من بداية الغرف) وطبعا [0] هى المصفوفة التى تدل على قيمة الview الذى تتعامل معه
(وهو view0)
view_hport[0] يحدد طول هذا الview ووضعناها هنا بقيمة تساوى 240
ايضا نفس النظام ل view1
اشعر ان احدا لم يفهم شيء....حسنا يرجى النظر الى تلك الصورة وكل شىء سيتضح حالا
الان شغل اللعبة وجرب.....تماااااااام
؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ليس تمام...فالان صور اللاعبين اصبحت صغيرة وهذا يؤثر على شكل اللعبة
معك حق.....لذا سنلجأ لخدعة تحل هذه المشاكل
اذا اردت زيادة حجم الصورة استعمل الدالة image_yscale وضع لها قيمة اكبر من واحد
لنجرب.......فى الحدث create الخاص باللاعب الاول ضع الكود
ونفس الشىء للاعب الاخر...وجربكود:{ image_yscale=2 }
تم الاصلاح لكن الخلفية مازالت صغيرة ومشوهة
فى الحدث create للكائن المسمى obj_view ضع هذا الكود
وجرب....تمت العملية بنجاح لكن مازال هناك مشكلة وهو ان الtiles التى وضعتها فى لعبتك ستكون صغيرة ايضا فى الحجمكود:{ background_yscale=2 }
عموما هذه هى المشكلة...اينعم هى لها حل سأشرحه حالا لكنه حل متعب ومع الاسف هو الوحيد الذى توصلت اليه
فى الكائن obj_view فى الحدث create
ضع الاتى
ملحوظة:: هذا الكود ينفع لمثالى فى المرفقات فقط اما انت فاكتب الارقام الموجودة عندككود:{ for (tl=10000208;tl<10000224;tl+=1) {tile_set_scale(tl,1,2)} }
طبعا tl متغير يعبر عن الid الخاص بالtile
والid الخاص بالtile ممكن اخذه من هنا كما فى هذه الصورة
مشكلته ان هذا الرقم يزداد تلقائيا...فاذا وضعت tile له رقم 10000208 ثم مسحته ووضعته
مرة اخرى فان رقمه سيصبح 10000209 وهكذا....لذا لا انصح كثيرا بعمل هذه الخاصية للالعاب
التى يتم فيها استعمال tiles كثيرة.....والا فقم برسم المرحلة كخلفية background ثم ضعها فى الغرفة
المثال موجود بالمرفقات ولو هناك خطأ ارجو ابلاغى..ارجو ان يكون هذا الدرس مفيد والى لقاء اخر ودرس جديد وفكرة جديدة
والسلام عليكم ورحمة الله وبركاته