طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

ساخت یک بازی ۲D با پایتون و کتابخانه آرکاید

يكشنبه, ۱۳ مرداد ۱۳۹۸، ۰۲:۵۵ ب.ظ
  • چگونه می‌توان یک بازی ۲D با پایتون و کتابخانه آرکاید ایجاد کرد؟
  • یاد بگیرید چگونه با آرکاید شروع به کارکنید…
  • یک کتابخانه ساده پایتون برای ساختن بازی‌های ویدیویی ۲ بعدی…

ساخت یک بازی 2D با پایتون و کتابخانه آرکاید

پایتون زبان برجسته‌ای برای یادگیری افراد در برنامه است. این زبان برای هرکسی که بخواهد کارها را سامان دهد و زمان زیادی را صرف boilerplate  کد نکند، فوق‌العاده است.

آرکاید یک کتابخانه پایتون برای ایجاد بازی‌های ۲ بعدی می‌باشد که استفاده از آن آسان است و به همان اندازه که تجربه به دست می‌آورید بسیار تواناست.

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

من بعد از تدریس به دانش‌آموزانی که از کتابخانه PyGame استفاده می‌کردند، شروع به توسعه بر روی آرکاید کردم. من برای تقریباً ۱۰ سال با استفاده از PyGame تدریس کردم و وبگاه http://programarcadegames.com/  را برای تدریس آنلاین توسعه دادم. PyGame عالی است اما درنهایت حس کردم که وقتم را برای رفع باگ‌هایی هدر می‌دهم که هیچ‌وقت درست نمی‌شوند.

نگران آموزش چیزهایی مانند event loop بودم که دیگر آن چیزی نبود که ما باید از آن استفاده کنیم. من یک پکیج کامل از توضیحات داشتم که چرا مختصات y معکوس شده است، چون‌که PyGame به‌ندرت بروز می‌شد و اینکه بر اساس یک کتابخانه قدیمی SDL 1 بود. به‌جای چیزی مانند openGL مدرن من امید زیادی برای آینده نداشتم.

من کتابخانه‌ای می‌خواستم که استفاده از آن آسان‌تر و قدرتمندتر باشد. از تعدادی از ویژگی‌های جدید پایتون ۳ استفاده کند مانند decorators و type-hinting . آرکاید همان بود که می‌خواستم، و این روشی است که باید به کمک آن شروع کرد.

 

نصب

آرکاید مانند بسیار دیگری از پکیج‌ها از طریق PyPi, قابل‌دسترس است. به این معنا که شما می‌توانید آرکاید را با استفاده از دستور PiP نصب کنید “یا فرمان pipenv”. اگر شما قبلاً پایتون را نصب‌کرده‌اید، به‌احتمال‌زیاد می‌توانید یک سطر فرمان‌بر روی ویندوز بازکنید و تایپ کنید:

pip install arcade

یا بر روی سیستم‌عامل مک و لینوکس تایپ کنید:

pip3 install arcade

شما می‌توانید یک پنجره بازکنید و نقاشی‌های ساده با چند خط کد ایجاد کنید، بیایید مثالی ایجاد کنیم که صورت خندانی مانند شکل زیر دارد:

 

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

البته، نوشتن کد در متن جهانی شکل خوبی نیست. خوشبختانه بهبود برنامه شما با استفاده از توابع ساده است. در اینجا ما می‌توانیم نمونه‌ای از یک درخت کاج در یک مکان خاص (x. y) با استفاده از یک تابع را ببینیم:

برنامه‌نویسان باتجربه‌تر می‌دانند که برنامه‌های گرافیکی پیشرفته اولین بار اطلاعات را در کارت گرافیک وارد می‌کنند، و سپس از کارت گرافیک می‌خواهند که بعداً آن‌ها را به‌صورت دسته‌ای بکشد. آرکاید نیز از این عمل پشتیبانی می‌کند. رسم ۱۰،۰۰۰ مستطیل به‌طور جداگانه حدود ۰٫۸۰۰ ثانیه طول می‌کشد. رسم آن‌ها به‌عنوان دسته کمتر از ۰٫۰۰۱ ثانیه طول می‌کشد.

کلاس پنجره

معمولاً برنامه‌های بزرگ‌تر از کلاس پنجره به دست می‌آیند یا از decorators استفاده می‌کنند. این به برنامه‌نویس اجازه می‌دهد تا کد را برای رسیدگی به طراحی، به‌روزرسانی، و کنترل ورودی از کاربر بنویسد. یک نمونه برای شروع یک برنامه مبتنی بر Window-based مثال زیر می‌باشد:

کلاس پنجره چندین روش دارد که برنامه شما می‌تواند برای فراهم آوردن قابلیت‌های برنامه لغو شوند. در اینجا برخی از رایج‌ترین موارد استفاده‌شده است:

  • on_draw: تمام کدها برای کشیدن صفحه‌نمایش به اینجا می‌روند.
  • Update: تمام کدها برای حرکت آیتم‌های خود و انجام بازی منطق به اینجا می‌روند. این مورد حدود ۶۰ بار در ثانیه گفته می‌شود.
  • on_key_press: زمانی که یک کلید فشار داده می‌شود، مانند سرعت دادن به یک بازیکن.
  • on_key_release: وقتی یک کلید زاآآآؤاراآزاد می‌شود، در اینجا می‌توانید یک بازیکن را از حرکت بازدارید.
  • on_mouse_motionاین هرزمانی که ماوس حرکت می‌کند خوانده می‌شود.
  • on_mouse_press: زمانی که دکمه ماوس فشار داده می‌شود خوانده می‌شود.
  • set_viewportاین تابع دربازی‌های لغزشی استفاده می‌شود.

 

اسپریت ها

اسپریت ها یک روش آسان برای ایجاد یکشی ۲D bitmapped در آرکاید هستند. آرکاید یک روش برای ساده کردن نقاشی دارد، حرکت، و انیمیت کردن اسپریت ها. همچنین می‌توانید به‌راحتی از اسپریت ها برای تشخیص برخورد بین اشیا استفاده کنید.

ساختن یک اسپریت

ایجاد یک نمونه از کلاس اسپریت ها از یک تصویر آسان است. یک برنامه‌نویس تنها به نام فایل یک تصویر تا بتواند فیلد خالی آن را بنویسد و به‌صورت اختیاری برای مقیاس تصویر بالا و پایین است. برای مثال:

این کد یک اسپریت را با استفاده از تصویر ذخیره‌شده در coin_01.png. این تصویر تا ۲۰% ارتفاع و عرض اصلی خود خواهد شد.

لیست اسپریت ها

اسپریت ها معمولاً در لیست‌ها سازمان‌دهی می‌شوند، این لیست‌ها باعث می‌شوند که اسپریت ها به‌راحتی مدیریت شوند، اسپریت ها در یک لیست از openGL برای دسته‌ای کشیدن به‌عنوان یک گروه استفاده می‌کنند. کد زیر یک بازی را با یک بازیکن شروع می‌کند. و تعدادی سکه برای جمع‌کردن توسط بازیکن. ما از ۲ لیست استفاده می‌کنیم، یکی برای بازیکن و دیگری برای سکه‌ها.

ما می‌توانیم به‌راحتی سکه‌ها را در لیست سکه بکشیم:

تشخیص برخورد اسپریت ها

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

خلاصه

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

 

امیدواریم این مطلب برای شما جذاب و کاربردی بوده باشد.

مترجم: امیرحسین فضیلت

منبع: دانشجویار


موافقین ۰ مخالفین ۰ ۹۸/۰۵/۱۳
شهربانو دوستی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی