آموزش ساخت یک فروشگاه ساده در GameMaker Studio

آموزش ساخت یک فروشگاه ساده در GameMaker Studio

در این درس با یک یه نمونه بسیار ساده و مقدماتی از کدنویسی فروشگاه در گیم میکر در خدمت شما هستیم که تنها دو آیتم برای خرید دارد. اما اساس کار را به شما می آموزد و بر طبق همین اصول می توانید فروشگاه خودتان رو بسازید و توسعه بدهید. فایل این پروژه را می توانید در انتهای این مطلب دانلود کنید.

بازی که قصد داریم فروشگاه برای آن ایجاد کنیم یک بازی ساده در سبک scrolling shooter است. یک هواپیما که در سمت چپ صحنه قرار گرفته و یک تصویر بکگراند که از حرکت رو به عقب آن، این احساس ایجاد می شود که انگار هواپیما در حال حرکت رو به جلوست. در حالی که هواپیما ثابت ایستاده. از سمت راست یک سری هواپیمای دشمن وارد صحنه می شود که بازیکن باید با استفاده از کلید بالا و پایین از بین آنهارد شود یا اینکه با استفاده از کلید space به سمت شان شلیک کند. تعدادی سکه هم از راست وارد صحنه می شود که بازیکن باید جمع آوری کند. با از بین بردن هواپیماهای دشمن و همچنین گرفتن سکه ها ، موجودی سکه بازیکن افزایش می یابد. تصویری از محیط بازی:

کدنویسی فروشگاه محیط بازی

 

همه این موارد ساده به گیم پلی بازی مربوط است و نیازی به توضیح ندارد. کار اصلی ما پیاده سازی فروشگاه است.  یک دکمه فروشگاه در پایین سمت راست صحنه قرار گرفته که بازیکن با کلیک کردن روی آن وارد فروشگاه شده و می تواند با استفاده از سکه هایی که جمع کرده گلوله جدید برای هواپیمایش بخرد. تصویری از فروشگاه ساده ما را می بینید:

کدنویسی فروشگاه نهایی

برای شروع ، حداقل به 3 صحنه یا Room نیاز داریم. صحنه اول را rm_initials نام گذاری می کنیم. در این صحنه متغیرهای اساسی بازی که در واقع هسته اصلی منطق بازی را به عهده دارند را مشخص می کنیم. توجه کنید که برای این کار نیازی به هیچ آبجکتی نداریم. صرفا به سربرگ setting رفته و روی Creation Code کلیک می کنیم. یک محیط کد نویسی باز می شود که می توانیم  کدهای زیر را در آن قرار دهیم:

کدنویسی فروشگاه متغیرهای اصلی

همان طور که می بینید ما 3 متغیر ایجاد کردیم که هر سه از نوع کلی یا global هست. حتما می دانید که متغیرهای global متغیرهایی هستند که متعلق به هیچ آبجکت خاصی نیستند و به مجموعه بازی مربوط می شوند. بنابراین تمام آبجکت های بازی می توانند به راحتی به آنها ارجاع بدهند و با کم و زیاد شدن آبجکت های بازی این متغیرها کماکان قابل استفاده هستند. فقط باید دقت داشته باشید که پیشوند global. حتما باید قبل از نام این متغیرها نوشته شده باشد.

متغیر اول یعنی global.shooting_type نوع شلیک هواپیماست که در حالت پیشفرض برابر با “normal” قرار داده شده. ما برای این هواپیما کلا 2 نوع شلیک در نظر گرفتیه ام: شلیک نرمال یا طبیعی که یک گلوله ساده ازآن خارج می شود ؛ و یک حالت سوپر که 3 گلوله به اطراف شلیک می کند و احتمال برخورد آن به هدف خیلی بیشتر و راحت تراست . شلیک نوع اول  رایگان است اما برای خرید نوع سوپر به 100 سکه نیاز خواهد بود.

متغیر دوم یعنی global.coin که تعداد سکه هایی هست که بازیکن در حین بازی کسب کرده است.

و متغیر سوم global.inventory در واقع سطح پیشرفت دارایی بازیکن است که اهمیت زیادی دارد. این متغیر در ابتدا برابر با صفر قرار داده شده به این معنی که سطح بازیکن در ابتدا صفر است. از این متغیر برای چک کردن این موضوع استفاده می کنیم که اگر بازیکن قبلا یک آیتم را خریداری کرده ، اگر دوباره به فروشگاه رفت و روی همان آیتم کلیک کرد، این بارپول از حسابش کسر نشود.

آخرین خط این برنامه هم دستور خروج از این صحنه و رفتن به صحنه بعدی است. دقت کنید که این چهار خط کد در کسری از ثانیه اجرا شده و بلافاصله بازیکن وارد صحنه بعدی بازی می شود بدون اینکه اصلا متوجه این انتقال بشود.

صحنه بعدی بازی که rm_game نام دارد صحنه ای است که بازی در آن اتفاق می افتد. بازیکن با نابود کردن هواپیماهای دشمن 5 سکه و با گرفتن سکه هایی که به صورت جایزه وارد صحنه می شوند 10 سکه می گیرد. در سمت چپ بالای  صحنه تعداد سکه هایی که بازیکن جمع می کند ثبت می شود. در پایین صحنه در سمت راست هم دکمه فروشگاه قرار دارد که با کلیک کردن روی اون وارد صحنه فروشگاه که نام آن را  rm_market گذاشته ایم می شویم.تصویری از محیط این صحنه:

کدنویسی فروشگاه روم

 

همان طور که می بینید در بالای این صحنه یک آبجکت با نام obj_shop قرار دادیم که کارش صرفا نمایش پیام های مربوط به خرید و قیمت آیتم ها در صفحه هست. در رخداد Create این آبجکت کد زیر را نوشتیم:

message=” “;

این یعنی اینکه متغیری به نام message و از نوع متنی یا string داریم که در حالت اولیه مقدارش خالی است. چون که در ابتدای ورود به این صحنه لازم نیست پیامی به بازیکن نشان داده شود.

در رخداد Draw هم کد زیر را تایپ کرده ایم:

draw_set_font(font0);

draw_set_color(c_black);

draw_text(0,0,”YOU HAVE ” + string(global.coin) + ” $”);

draw_text(obj_shop_1bomb.x-50,obj_shop_1bomb.y+50,”FREE”);

draw_text(obj_shop_3bombs.x-50,obj_shop_3bombs.y+50,”100 $”);

draw_text(150,500,message);

در خطوط اول و دوم رنگ و فونت نوشته ها را تعیین کرده ایم. در خط سوم جمله ای با این معنی که “شما …. پول دارید” را نمایش می دهیم. در قسمت جاخالی با متغیر global.coin که قبلا معرفی و در حین بازی به روز رسانی شده پر می کنیم. خط چهارم و پنجم هم قیمت دو آیتم موجود در فروشگاه را زیر این آیتم ها درج می کند. همان طور که می بینید آیتم اول FREE یا رایگان است و آیتم بعدی هم 100 دلار قرار داده شده. در نهایت هم دستور مربوط به نمایش پیام خرید اجرا می شود .

حالا به سراغ آیتم های موجود در فروشگاه می رویم. آیتم اول که نام آن obj_shop_1bomb  هست، مربوط به شلیک معمولی و پیشفرض هواپیماست که بایستی رایگان باشد. بنابراین در رخداد کلیک چپ ماوس کد زیر را می نویسیم:

global.shooting_type = “normal”;

خیلی راحت: یعنی اینکه نوع شلیک را به صورت نرمال قرار بده. دقت کنید که هیچ شرطی ندارد و بنابراین رایگان است !

اما نکته اصلی در آیتم دوم یعنی آبجکت obj_shop_3bombs قرار دارد. با خرید این آیتم شلیک هواپیما به صورت 3 گلوله درمی آید.  در رخداد کلیک چپ ماوس نوشته شده:

کدنویسی فروشگاه

همانطور که در خط 3 می بینید اول چک می کنیم که سطح دارایی بازیکن چقدر است. اگر سطح او همان میزان ابتدایی یعنی صفر است، نتیجه می گیریم که تا به حال خریدی انجام نداده است.در این صورت 2 حالت پیدا می کند: آیا تعداد سکه هایش کمتر از 100 سکه است یا بیشتر از از آن . در صورتی که پول بازیکن کم است پیام “عدم موجودی کافی” نمایش داده می شود. اما در صورتی که سکه به اندازه کافی موجود باشد اولا نوع شلیک برابر با “super” قرار میدهیم، سپس 100 سکه از موجودی بازیکن کم می شود. بعد سطح دارایی بازیکن یک واحد افزایش پیدا می کند و نهایتا پیغام “خرید موفق ” نمایش داده می شود.

حال در بخش انتهایی کد که می گوید: در صورتی که سطح دارایی بیشتر از صفر بوده باشد، یعنی بازیکن قبلا آیتم شلیک 3 گلوله ای را خریداری نموده است، بنابراین نوع شلیک بدون آنکه از موجودی سکه ها کاسته شود، برابر با”super” قرار داده می شود.

در آخر امیدوارم این مطلب برای شما مفید بوده باشد.می توانید فیال سورس پروژه را از پست بعد دانلود کنید:(از داخل گیم میکر import کنید)

کدنویسی فروشگاه دانلود

دانلود سورس این درس

مطلب دیگری که ممکن است دوست داشته باشید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *