d.a.m.h
05-02-2008, 12:53 AM
السلام عليكم ورحمة الله وبركاته....اكتب اليكم هذا الدرس بعد فوز منتخب مصر على منتخب انجولا
وباذن الله بالتوفيق لمنتخبنا
اليوم اكتب عن درس فكرته قديمة لكنه جديد على بعض الاعضاء لم يستعملها كثير من الناس فى الجيم ميكر
الا وهى فكرة المشهدين الموجودين فى غرفة واحدة
الفكرة بكل بساطة ان يكون هناك لاعبان وكل لاعب موجود فى نفس المرحلة لكن فى مكان مختلف
لذا فان الغرفة تنقسم الى جزئين سواء بالطول او بالعرض ويكون لكل لاعب جزئية اومشهد يلعب من خلاله
وبالنظر الى هذه الصورة يمكن ان نفهم هذه كلماتى السابقة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w23390259.gif
كيفية عمل مشهدين فى غرفة واحدة:
اول شىء سنفعله هو ان نقوم بادخال صور اللاعبين (وفى المثال الذى صنعته وضعت اللاعب الاول صورة
لكرة باللون الازرق والاخر كرة باللون الاحمر)
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w21056489.gif
ادخلها ككائن وضع بها احداث التحريك كما بالصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w76799864.gif
بعدها سنقوم بادخال الview كما فى الصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w41412218.gif
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w86196242.gif
وكلها طبعا اشياء معروفة
الان ادخل 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
اشعر ان احدا لم يفهم شيء....حسنا يرجى النظر الى تلك الصورة وكل شىء سيتضح حالا
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w34437504.gif
الان شغل اللعبة وجرب.....تماااااااام
؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ليس تمام...فالان صور اللاعبين اصبحت صغيرة وهذا يؤثر على شكل اللعبة
معك حق.....لذا سنلجأ لخدعة تحل هذه المشاكل
اذا اردت زيادة حجم الصورة استعمل الدالة image_yscale وضع لها قيمة اكبر من واحد
لنجرب.......فى الحدث create الخاص باللاعب الاول ضع الكود
{
image_yscale=2
}
ونفس الشىء للاعب الاخر...وجرب
تم الاصلاح لكن الخلفية مازالت صغيرة ومشوهة
فى الحدث create للكائن المسمى obj_view ضع هذا الكود
{
background_yscale=2
}
وجرب....تمت العملية بنجاح لكن مازال هناك مشكلة وهو ان الtiles التى وضعتها فى لعبتك ستكون صغيرة ايضا فى الحجم
عموما هذه هى المشكلة...اينعم هى لها حل سأشرحه حالا لكنه حل متعب ومع الاسف هو الوحيد الذى توصلت اليه
فى الكائن obj_view فى الحدث create
ضع الاتى
{
for (tl=10000208;tl<10000224;tl+=1)
{tile_set_scale(tl,1,2)}
}
ملحوظة:: هذا الكود ينفع لمثالى فى المرفقات فقط اما انت فاكتب الارقام الموجودة عندك
طبعا tl متغير يعبر عن الid الخاص بالtile
والid الخاص بالtile ممكن اخذه من هنا كما فى هذه الصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w65417060.gif
مشكلته ان هذا الرقم يزداد تلقائيا...فاذا وضعت tile له رقم 10000208 ثم مسحته ووضعته
مرة اخرى فان رقمه سيصبح 10000209 وهكذا....لذا لا انصح كثيرا بعمل هذه الخاصية للالعاب
التى يتم فيها استعمال tiles كثيرة.....والا فقم برسم المرحلة كخلفية background ثم ضعها فى الغرفة
المثال موجود بالمرفقات ولو هناك خطأ ارجو ابلاغى..ارجو ان يكون هذا الدرس مفيد والى لقاء اخر ودرس جديد وفكرة جديدة
والسلام عليكم ورحمة الله وبركاته
وباذن الله بالتوفيق لمنتخبنا
اليوم اكتب عن درس فكرته قديمة لكنه جديد على بعض الاعضاء لم يستعملها كثير من الناس فى الجيم ميكر
الا وهى فكرة المشهدين الموجودين فى غرفة واحدة
الفكرة بكل بساطة ان يكون هناك لاعبان وكل لاعب موجود فى نفس المرحلة لكن فى مكان مختلف
لذا فان الغرفة تنقسم الى جزئين سواء بالطول او بالعرض ويكون لكل لاعب جزئية اومشهد يلعب من خلاله
وبالنظر الى هذه الصورة يمكن ان نفهم هذه كلماتى السابقة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w23390259.gif
كيفية عمل مشهدين فى غرفة واحدة:
اول شىء سنفعله هو ان نقوم بادخال صور اللاعبين (وفى المثال الذى صنعته وضعت اللاعب الاول صورة
لكرة باللون الازرق والاخر كرة باللون الاحمر)
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w21056489.gif
ادخلها ككائن وضع بها احداث التحريك كما بالصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w76799864.gif
بعدها سنقوم بادخال الview كما فى الصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w41412218.gif
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w86196242.gif
وكلها طبعا اشياء معروفة
الان ادخل 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
اشعر ان احدا لم يفهم شيء....حسنا يرجى النظر الى تلك الصورة وكل شىء سيتضح حالا
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w34437504.gif
الان شغل اللعبة وجرب.....تماااااااام
؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ليس تمام...فالان صور اللاعبين اصبحت صغيرة وهذا يؤثر على شكل اللعبة
معك حق.....لذا سنلجأ لخدعة تحل هذه المشاكل
اذا اردت زيادة حجم الصورة استعمل الدالة image_yscale وضع لها قيمة اكبر من واحد
لنجرب.......فى الحدث create الخاص باللاعب الاول ضع الكود
{
image_yscale=2
}
ونفس الشىء للاعب الاخر...وجرب
تم الاصلاح لكن الخلفية مازالت صغيرة ومشوهة
فى الحدث create للكائن المسمى obj_view ضع هذا الكود
{
background_yscale=2
}
وجرب....تمت العملية بنجاح لكن مازال هناك مشكلة وهو ان الtiles التى وضعتها فى لعبتك ستكون صغيرة ايضا فى الحجم
عموما هذه هى المشكلة...اينعم هى لها حل سأشرحه حالا لكنه حل متعب ومع الاسف هو الوحيد الذى توصلت اليه
فى الكائن obj_view فى الحدث create
ضع الاتى
{
for (tl=10000208;tl<10000224;tl+=1)
{tile_set_scale(tl,1,2)}
}
ملحوظة:: هذا الكود ينفع لمثالى فى المرفقات فقط اما انت فاكتب الارقام الموجودة عندك
طبعا tl متغير يعبر عن الid الخاص بالtile
والid الخاص بالtile ممكن اخذه من هنا كما فى هذه الصورة
http://img3.7m7.org/1-2008/fdgsdgs.lkjhef2j4fblj3w65417060.gif
مشكلته ان هذا الرقم يزداد تلقائيا...فاذا وضعت tile له رقم 10000208 ثم مسحته ووضعته
مرة اخرى فان رقمه سيصبح 10000209 وهكذا....لذا لا انصح كثيرا بعمل هذه الخاصية للالعاب
التى يتم فيها استعمال tiles كثيرة.....والا فقم برسم المرحلة كخلفية background ثم ضعها فى الغرفة
المثال موجود بالمرفقات ولو هناك خطأ ارجو ابلاغى..ارجو ان يكون هذا الدرس مفيد والى لقاء اخر ودرس جديد وفكرة جديدة
والسلام عليكم ورحمة الله وبركاته