[تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
صفحة 1 من اصل 1 • شاطر
[تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
السلام عليكم ورحمه الله وبركاته
حبيت احط تحدى صعب شويه وانا عارف انكم هتعرفوا الكود يعـنى هتعرفوا الكود
ما هو التحدى :
التحدى هو عباره عن كود من خلاله يمكنك وضع فى لعبتك قائمه متطوره بدل من قائمه ESC التى من خلالها تخرج من العب ؟
لم افهم ؟ :
ان لم تفهم فلرجاء التركيز الى الاتى :
انا عندى لعبه وكل تمام والدنيا ماشيه بس حبيت احط Menu ليها هيا ليست قائمه افتتاحيه مثل هذه:
الذى قدمها الاخ :عاشق الجيم ميكر (يمكنك متابعه هذا الدرس من هنا :http://www.learngm.com/t170-topic)
===========================================================
بس انته لما تلعب العبه بتحب تظبط ال options بتاعت لعبتك يعنى توطى الصوت او تعليه او تقفل الصوت من العبه وهكذا ...
طيب لما احب اعمل كده لازم فى زر معين بدوس عليه وهو اغلبيا زر الخروج او :ESc (طبعا بتلقيه فى لوحه المفاتيح)
بس الزر ده بيطلعنى من العبه وبيكون الى انا عملته فى العبه راح ):
الطلب الاصلى:
هو كود لما تدوس على esc او اى زر يختاره مصمم العبه
1- بيعمل للعبه pause او ايقاف موقت ..
2- بيفتح Menu من خلالها تقدر مثننا : تخرج من العبه : تحفظ العبه : تروح لل options : و زر الرجوع مره اخرى الى العبه او الى هو resume play . علشان لما تدوس عليه ترجع تانى للعبه وفى المكان الى انته كنت فيه ... بدون ما يخرجك بره العبه....
الشروط :
1- اغلبنا بيحط اكواد غير شغاله تماما ... فايريت محدش يحط اكواد غير شغاله ^ _ ^ علشان غيرك يستفيد
2- يكون الكود مقسم لمرحلتين المرحله الاولى هيا ايقاف العبه او pause والمرحله التانيه هيا اظهر القائمه او ال mune
=========================================================
يبدا التحدى من اليوم وينتهى 1/8 اول ايام عيد الفطر
=========================================================
انا عارف ان التحدى ده صعب جداااااا بس يلا ورونى شطرتكم ويارب اكون وضحت التحدى
omar-games-
- الجنس :
عدد المساهمات : 97
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
شاشرح بطريقتي
اولا نعمل سبرايتات مثلا لاعب,pause و سبرايتات القائمة الافتتاحية
نعمل اوبجيكات للسبرايتات هذي ونعمل ثلاث روم
الروم الاول القائمة الافتتاحية
الروم التاني pause
الروم الثالث روم اللعب
حسنا....
في اوبجيكت اللاعب: P-key event
نضع الكود ذا
- الكود:
game_save("pause");
ثم
- الكود:
room_goto_previous();
في روم التاني نضع اوبجيكات pause و menu
في اوبجكت pause حدث mouse left button
كود
- الكود:
game_load("puase");
في اوبجكت menu حدث mouse left button
كود
- الكود:
room_goto_previous();
Nephron- Discussion Moderator
- الجنس :
عدد المساهمات : 389
الأوسمة :
وسام المساعدة
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
احسنت اخى لكن ليس هذا هو ما كنت اقصده بلتـــــحديد لكن انته وصلت الى نقطه مميزه جدا فى التحدى
=========================
فلذى كنت اقصده مع العلم ان العبه تتاح جميع الثيغ مثل platfrom _ prg _ 3d _ tds او ايا كان يكون فيه ال Background ظاهر وراء ال mune بدون Else eveny او هذا ليس مهم لكن انته هكذا تذهب وتتنقل ايضا الى الغرف (room) ولكن ما احتاجه هو ان القائمه تكون على الاقل غرفه واحده او غرفتين .... وشكرا على جهدك
=========================
فلذى كنت اقصده مع العلم ان العبه تتاح جميع الثيغ مثل platfrom _ prg _ 3d _ tds او ايا كان يكون فيه ال Background ظاهر وراء ال mune بدون Else eveny او هذا ليس مهم لكن انته هكذا تذهب وتتنقل ايضا الى الغرف (room) ولكن ما احتاجه هو ان القائمه تكون على الاقل غرفه واحده او غرفتين .... وشكرا على جهدك
omar-games-
- الجنس :
عدد المساهمات : 97
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
اليــــس هناك اى احد يعرف يفوز فيهاذا التحدى &_* يا لها من خيبه املا
omar-games-
- الجنس :
عدد المساهمات : 97
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
Create Event:
- الكود:
///Go
blur_stop = 0;
precision=2;
amount=0;
_prec=max(1,min(10,precision));
_width=view_wview[0]/_prec;
_height=view_hview[0]/_prec;
blur_1X=surface_create(_width,_height);
blur_2X=surface_create(_width,_height);
blur_on=0;
Step Event:
- الكود:
///Start
view_enabled=1
view_visible[0]=1
view_wport[0]=_width
view_hport[0]=_height
visible=0
surface_set_target(blur_2X)
screen_redraw()
surface_reset_target()
visible=1
view_wport[0]=view_wview[0]
view_hport[0]=view_hview[0]
texture_set_interpolation(true)
repeat(amount)
{
surface_set_target(blur_1X)
draw_surface_ext(blur_2X,0,0,.5,.5,0,c_white,1)
surface_reset_target()
surface_set_target(blur_2X)
draw_surface_ext(blur_1X,0,0,2,2,0,c_white,1)
surface_reset_target()
}
texture_set_interpolation(false)
if keyboard_check_pressed(ord("P")) {blur_on=!blur_on}
if blur_on=1 && amount<5 {amount+=0.50};
if blur_on=1 && amount = 5
{
amount = 5.50
draw_set_halign(fa_center)
draw_set_valign(fa_center)
draw_text(view_xview[0]+240,view_yview[0]+136,"Game Paused##Press escape to quit the game.")
screen_refresh()
keyboard_wait()
draw_set_halign(fa_left)
draw_set_valign(fa_top)
blur_on=0
}
if blur_on=0 && amount > 0 {amount-=0.50};
Draw Event:
- الكود:
///Stuff
texture_set_interpolation(true)
draw_surface_stretched_ext(blur_2X,view_xview[0],view_yview[0]
,view_wview[0],view_hview[0],c_white,min(1,amount/precision))
texture_set_interpolation(false)
Bukmang-
- الجنس :
عدد المساهمات : 122
الأوسمة :
وسام المساعدة
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
اخى الكرـيم ما هذا ؟ ؟ ؟ ؟
=-=-=-=-=-=-=-=-=-=-=-=
الم تلاحظ انك لم حتى تفهمنى الكود وان كان هناك احد الاعضاء الجدد معــنا هل سوف يفهم هذا الكود ؟؟؟
الرجاء التحلى ببعض المعلومات ليس بوضع كود غير مفهوم ؟
=-=-=-=-=-=-=-=-=-=-=-=
الم تلاحظ انك لم حتى تفهمنى الكود وان كان هناك احد الاعضاء الجدد معــنا هل سوف يفهم هذا الكود ؟؟؟
الرجاء التحلى ببعض المعلومات ليس بوضع كود غير مفهوم ؟
omar-games-
- الجنس :
عدد المساهمات : 97
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
انتا مش محاج تفهم الكود, انتا لاذم تعرف تستخدمه.
فمثلا انا عملت
- الكود:
if keyboard_check_pressed(vk_escape)
{
blur_on=!blur_on;
with oMenu { instance_destroy(); }
with oLine { instance_destroy(); }
with oReturn { instance_destroy(); }
with oExit { instance_destroy(); }
with oBack { instance_destroy(); }
alarm[0]=10;
}
if blur_on=1 && amount<5 {amount+=0.50};
if blur_on=1 && amount = 5
{
amount=4;
screen_refresh();
if !instance_exists(oMenu)
{
instance_create(view_xview[0]+300, view_yview[0]+150, oMenu);
}
if !instance_exists(oLine)
{
instance_create(view_xview[0]+300, view_yview[0]+150, oLine);
}
instance_create(view_xview[0]+137, view_yview[0]+150, oBack);
instance_create(view_xview[0]+80, view_yview[0]+150, oExit);
instance_create(view_xview[0]+600, view_yview[0]+150, oReturn);
instance_create(view_xview[0]-5, view_yview[0]+150, oReturn);
with FinnJake { Enable=false; Attacking=1; }
with TimeZombie { Enable=false; }
blur_on=1;
}
اول ما هدوس Esc القائمة هتظهر, و لمل تتدوس Esc تانى هتختفى
ووقف حركة اللعب ب Enable وAttacking
Bukmang-
- الجنس :
عدد المساهمات : 122
الأوسمة :
وسام المساعدة
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
وعليكم السلام ورحمة الله وبركاته
تفضل جواب تحديك مني
مثلاً ولنقل إذا ضغطنا زر مسافة vk_space
ينشئ لنا كائناً اسمه obj_pause
ثم وفي obj_pause نضع في الـ Create Event :
وهذا الكود يقوم بأشبه ما يكون بتصوير الروم كاملة من 0و0 إلى room_width room_height ويحتفظ بالصورة في متغير اسميناه هنا bck
والكود الثاني instance_deactivate_all(true) هو الكود الحقيقي لإيقاف اللعبة ، ووظيفته إبطال وجود كل كائن في الروم عدا نفسه ولذلك وضعنا true ، أما اذا وضعنا false فإنه يبطل وجود نفسه أيضاً ، وهذا شبيه بالـ instance_destroy() إلا أنه لازال يمكننا استرداد الكائن.
ثم عند الـ Step Event :
وهذا الكود هو كود الرجوع resume وهو واضحٌ لأنه عكس deactivate وهو activate all ،
والكود الثاني كما نعلم instance_destroy() يقوم بحذف obj_pause فبالتالي يرجع كل شيءٍ كما كان.
لم ننته هنا فنحن لم نستخدم الـ bck بعدُ.
ففي الـ Draw Event :
وهنا نقوم برسم المرحلة التي التقطنا صورتها بالمتغير bck ، فنقول draw_background ، ثم نرسم مربعاً مظللاً شفافاً قليلاً فوق الصورة بحيث تظهر كأنها شيئٌ منفصل ، ثم نرجع الشفافية إلى الوضع الطبيعي ، ثم نكتب نصاً نوضح فيه أننا في وضع ال menu أو ال pause.
وبهذا نكون انتهينا من الفكرة الأساسية فأنت بعد ذلك يمكنك الدخول إلى الـ Create Event مثلاً وتقوم بإنشاء menu بالأوامر التي تريدها ، ثم وبعد الضغط على vk_space تقوم بتدميرها ،
بمعنى أنك تضيفها في هذا الكود الذي هو في الـ Step Event الذي تقدم إيضاحه بهذه الطريقة:
تفضل جواب تحديك مني
مثلاً ولنقل إذا ضغطنا زر مسافة vk_space
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_create(0,0,obj_pause);
}
ينشئ لنا كائناً اسمه obj_pause
ثم وفي obj_pause نضع في الـ Create Event :
- الكود:
bck=background_create_from_screen(0,0,room_width,room_height,false,false);
instance_deactivate_all(true);
وهذا الكود يقوم بأشبه ما يكون بتصوير الروم كاملة من 0و0 إلى room_width room_height ويحتفظ بالصورة في متغير اسميناه هنا bck
والكود الثاني instance_deactivate_all(true) هو الكود الحقيقي لإيقاف اللعبة ، ووظيفته إبطال وجود كل كائن في الروم عدا نفسه ولذلك وضعنا true ، أما اذا وضعنا false فإنه يبطل وجود نفسه أيضاً ، وهذا شبيه بالـ instance_destroy() إلا أنه لازال يمكننا استرداد الكائن.
ثم عند الـ Step Event :
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_activate_all();
instance_destroy();
}
وهذا الكود هو كود الرجوع resume وهو واضحٌ لأنه عكس deactivate وهو activate all ،
والكود الثاني كما نعلم instance_destroy() يقوم بحذف obj_pause فبالتالي يرجع كل شيءٍ كما كان.
لم ننته هنا فنحن لم نستخدم الـ bck بعدُ.
ففي الـ Draw Event :
- الكود:
draw_background(bck,0,0);
draw_set_color(c_black);
draw_set_alpha(0.8);
draw_rectangle(0,0,room_width,room_height,false);
draw_set_alpha(1);
draw_set_color(c_white);
draw_text(32,32,"<Game Paused>");
draw_text(32,32+16,"Press <Space> to resume")
draw_set_color(c_black);
وهنا نقوم برسم المرحلة التي التقطنا صورتها بالمتغير bck ، فنقول draw_background ، ثم نرسم مربعاً مظللاً شفافاً قليلاً فوق الصورة بحيث تظهر كأنها شيئٌ منفصل ، ثم نرجع الشفافية إلى الوضع الطبيعي ، ثم نكتب نصاً نوضح فيه أننا في وضع ال menu أو ال pause.
وبهذا نكون انتهينا من الفكرة الأساسية فأنت بعد ذلك يمكنك الدخول إلى الـ Create Event مثلاً وتقوم بإنشاء menu بالأوامر التي تريدها ، ثم وبعد الضغط على vk_space تقوم بتدميرها ،
بمعنى أنك تضيفها في هذا الكود الذي هو في الـ Step Event الذي تقدم إيضاحه بهذه الطريقة:
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_activate_all();
instance_destroy();
الإضافة هذه ، لكي تقوم بحذف القائمة التي انشأتها مثلاً
with(obj_btn_resume) {instance_destroy();}
with(obj_btn_options) {instance_destroy();}
with(obj_btn_exit) {instance_destroy();}
with(obj_btn_help) {instance_destroy();}
}
ملاحظة: الـ Game Maker Studio عندنا زر Esc لا يقوم بإنهاء اللعبة ، وإنما ذلك فقط في الـ 8.1 والإصدارات التي قبله.
GameMaker1103-
- الجنس :
عدد المساهمات : 553
الأوسمة :
وسام المساعدة
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
GameMaker1103 كتب:وعليكم السلام ورحمة الله وبركاته
تفضل جواب تحديك مني
مثلاً ولنقل إذا ضغطنا زر مسافة vk_space
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_create(0,0,obj_pause);
}
ينشئ لنا كائناً اسمه obj_pause
ثم وفي obj_pause نضع في الـ Create Event :
- الكود:
bck=background_create_from_screen(0,0,room_width,room_height,false,false);
instance_deactivate_all(true);
وهذا الكود يقوم بأشبه ما يكون بتصوير الروم كاملة من 0و0 إلى room_width room_height ويحتفظ بالصورة في متغير اسميناه هنا bck
والكود الثاني instance_deactivate_all(true) هو الكود الحقيقي لإيقاف اللعبة ، ووظيفته إبطال وجود كل كائن في الروم عدا نفسه ولذلك وضعنا true ، أما اذا وضعنا false فإنه يبطل وجود نفسه أيضاً ، وهذا شبيه بالـ instance_destroy() إلا أنه لازال يمكننا استرداد الكائن.
ثم عند الـ Step Event :
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_activate_all();
instance_destroy();
}
وهذا الكود هو كود الرجوع resume وهو واضحٌ لأنه عكس deactivate وهو activate all ،
والكود الثاني كما نعلم instance_destroy() يقوم بحذف obj_pause فبالتالي يرجع كل شيءٍ كما كان.
لم ننته هنا فنحن لم نستخدم الـ bck بعدُ.
ففي الـ Draw Event :
- الكود:
draw_background(bck,0,0);
draw_set_color(c_black);
draw_set_alpha(0.8);
draw_rectangle(0,0,room_width,room_height,false);
draw_set_alpha(1);
draw_set_color(c_white);
draw_text(32,32,"<Game Paused>");
draw_text(32,32+16,"Press <Space> to resume")
draw_set_color(c_black);
وهنا نقوم برسم المرحلة التي التقطنا صورتها بالمتغير bck ، فنقول draw_background ، ثم نرسم مربعاً مظللاً شفافاً قليلاً فوق الصورة بحيث تظهر كأنها شيئٌ منفصل ، ثم نرجع الشفافية إلى الوضع الطبيعي ، ثم نكتب نصاً نوضح فيه أننا في وضع ال menu أو ال pause.
وبهذا نكون انتهينا من الفكرة الأساسية فأنت بعد ذلك يمكنك الدخول إلى الـ Create Event مثلاً وتقوم بإنشاء menu بالأوامر التي تريدها ، ثم وبعد الضغط على vk_space تقوم بتدميرها ،
بمعنى أنك تضيفها في هذا الكود الذي هو في الـ Step Event الذي تقدم إيضاحه بهذه الطريقة:
- الكود:
if keyboard_check_pressed(vk_space)
{
instance_activate_all();
instance_destroy();
الإضافة هذه ، لكي تقوم بحذف القائمة التي انشأتها مثلاً
with(obj_btn_resume) {instance_destroy();}
with(obj_btn_options) {instance_destroy();}
with(obj_btn_exit) {instance_destroy();}
with(obj_btn_help) {instance_destroy();}
}ملاحظة: الـ Game Maker Studio عندنا زر Esc لا يقوم بإنهاء اللعبة ، وإنما ذلك فقط في الـ 8.1 والإصدارات التي قبله.
شرح وافي ورائع .. .. شكرا جزيلاً لك
Abdullah Alsayed- Admin
- الجنس :
عدد المساهمات : 1791
رد: [تم حله] استعمال كود فتح قائمه متتطوره داخل لعبتك [menu game]
شكرا اخى gamemaker 1103 >> ^_^ تم الحل + حلك صحيح
omar-games-
- الجنس :
عدد المساهمات : 97
مواضيع مماثلة
» كيفيه فعل Pause Menu داخل اللعبه
» كيفيه فعل قائمه تحكم متغيره
» ساعدونيييييي في قائمه اختيار الشخصيه
» كيف اعمل قائمه بالوحه المفاتيح
» لعبه لعمل قائمه بدون اسكربيت
» كيفيه فعل قائمه تحكم متغيره
» ساعدونيييييي في قائمه اختيار الشخصيه
» كيف اعمل قائمه بالوحه المفاتيح
» لعبه لعمل قائمه بدون اسكربيت
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
السبت فبراير 03, 2018 7:40 pm من طرف ZAHRANI BLACK
» مساعدة ضروورية
الإثنين يناير 29, 2018 10:32 pm من طرف king_of_fun
» شارك رابط تطبيقك من تطبيقك على الاندرويد على وسائل التواصل الاجتماعي
الإثنين يناير 29, 2018 12:45 pm من طرف ibraheem2d
» ازاي اصنع لعبه علي Android
الأحد يناير 28, 2018 4:31 pm من طرف ibraheem2d
» درس صناعة 2D بلاتفورم بسيط باستخدام مكتبة Simple Platform LIB حصريا !
الخميس يناير 11, 2018 2:44 am من طرف Abdullah Alsayed
» اخر مساعدة منكم لي في الجيم ماكر
الأربعاء يناير 03, 2018 2:18 am من طرف king_of_fun
» ادعوكم اصدقائي لتجريب لعبتي الاولي Am Head Soccer
الثلاثاء ديسمبر 26, 2017 2:41 pm من طرف nexusrex
» طلب مساعدة بخصوص لعبة pinball.
الأحد ديسمبر 03, 2017 8:52 pm من طرف moummi.mouh@gmail.com