کد ساخت بازی با پایتون – آموزش عملی برای مبتدیان
بسیاری از افراد تصور میکنند که بازیسازی یکی از حوزههای پیچیده و دشوار است. در حالی که پایتون با معرفی کتابخانههایی همچون Pygame ،Arcade و Turtle یادگیری مفاهیم اولیه بازیسازی را بسیار آسان کرده است. در این مطلب از مجله فرادرس با نحوه نوشتن کد ساخت بازی با پایتون به صورت گامبهگام آشنا خواهید شد.
- با اهمیت و مفاهیم اصلی ساخت بازی با پایتون آشنا میشوید.
- میآموزید طراحی ساختار یک بازی ساده در پایتون چگونه انجام میشود.
- یاد میگیرید اجزای اصلی یک بازی مثل حرکت، برخورد و امتیازدهی چیست.
- میآموزید چگونه با استفاده از Pygame یک بازی کوچک بسازید.
- میآموزید چگونه بازی خود را توسعه دهید و مراحل جدید به آن اضافه کنید.


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

بهترین کتابخانههای پایتون برای ساخت بازی کدامند؟
پایتون به تنهایی امکانات گرافیکی ویژهای برای ساخت بازی ندارد، اما مجموعهای از ابزارها و کتابخانههایی دارد که بازیسازی را سادهتر میکنند. هر کدام از کتابخانههای پایتون برای ساخت نوع خاصی از بازی مناسب هستند. از جمله معروفترین کتابخانههای پایتون برای ساخت بازی به موارد زیر میتوان اشاره کرد.
- Pygame
- Arcade
- Turtle
- PyOpenGL
- Panda3D
برای شروع ساخت بازی با پایتون باید با کتابخانههای بازیسازی آن آشنایی داشته باشید. در ادامه این بخش به بررسی کتابخانههای ساخت بازی در پایتون خواهیم پرداخت.
Pygame محبوبترین کتابخانه پایتون برای ساخت بازی
Pygame معروفترین کتابخانه ساخت بازی با پایتون است که به صورت رایگان و متنباز عرضه شده است. این کتابخانه با ارائه تمام توابع ضروری برای مدیریت گرافیک، صدا و تعامل کاربر توسعه بازی را برای توسعهدهندگان آسان میکند. برای آشنایی بیشتر با کتابخانه Pygame میتوانید فیلم آموزش کتابخانه Pygame در پایتون همراه با توسعه بازیهای دوبعدی با راهنمای عملی از فرادرس را مشاهده کنید که لینک آن در ادامه آورده شده است.
Pygame اولین انتخاب برای مبتدیانی است که میخواهند با پایتون بازی بسازند. از جمله مهمترین قابلیتهای Pygame به موارد زیر میتوان اشاره کرد.
- استفاده آسان برای افراد مبتدی
- چندپلتفرمی
- مدیریت آسان ورودیها
- رسم تصاویر، اشکال و متن
- امکان کنترل رویدادهای بازی
این کتابخانه برای ساخت بازیهای ساده تا متوسط مناسب است و گزینه خوبی برای آموزش مفاهیم بازیسازی محسوب میشود.

Arcade کتابخانهای مدرن برای ساخت بازی های ۲ بعدی
Arcade یک کتابخانه جدیدتر و مدرنتر نسبت به Pygame است. این کتابخانه با OpenGL کار میکند و برای ساخت بازیهای حرفهایتر مناسب است.
کتابخانه Arcade به طور گسترده برای ساخت بازیهای دوبُعدی با گرافیک جذاب مورد استفاده قرار میگیرد. مهمترین ویژگیهای Arcade در ساخت بازی عبارتنداز:
- رندر سریع مبتنی بر GPU
- ساختار شیگرا و حرفهای
- پشتیبانی برای ساخت نقشههای Tile-Based
- سیستم مدیریت Sprite قدرتمند
- مستندات فراوان
از کتابخانه Arcade در پایتون میتوان برای ساخت بازیهای پلتفرمر و نیمه حرفهای استفاده کرد. Arcade به افرادی توصیه میشود که تجربه برنامه نویسی بیشتری دارند و میخواهند از یک ساختار منظم استفاده کنند.
Turtle سادهترین ابزار برای ساخت بازی در پایتون
Turtle یکی از سادهترین کتابخانههای گرافیکی در پایتون است که بیشتر به منظور آموزش برنامه نویسی به مبتدیان مورد استفاده قرار میگیرد. با این حال میتوان از این کتابخانه برای ساخت بازیهای بسیار ساده نیز استفاده کرد.
Turtle محیطی را فراهم میکند که در آن میتوان یک لاکپشت مجازی را با دستورهای ساده جابهجا کرد و شکلهای مختلفی را کشید. به لطف همین قابلیت میتوان از Turtle برای ساخت بازیهای ساده استفاده کرد. افراد مبتدی میتوانند بازیسازی در پایتون را با کتابخانه Turtle شروع کنند. در ادامه برخی از مزایای Turtle آورده شده است.
- یادگیری سریع و آسان
- بدون نیاز به نصب کتابخانههای سنگین
- مناسب برای درک مفاهیم اولیه بازیسازی
PyOpenGL برای ساخت بازی های سه بعدی در پایتون
کتابخانه PyOpenGL یک رابط برای استفاده از OpenGL در پایتون است. OpenGL یکی از استانداردهای مهم برای ساخت گرافیک دوبُعدی و سهبُعدی در بازیها و نرمافزارهای گرافیکی است. توسعهدهندگان با استفاده از PyOpenGL میتوانند از امکانات OpenGL نظیر رندر سهبُعدی، نورپردازی، سایهزنی و کار با مدلهای پیچیده در پروژههای پایتون خود استفاده کنند.
PyOpenGL در مقایسه با سایر کتابخانههای پایتون مانند Pygame و Arcade حرفهایتر است و بیشتر برای ساخت بازیهای سنگینتر مورد استفاده قرار میگیرد. در ادامه تعدادی از قابلیتهای PyOpenGL آورده شده است.
- رندر گرافیک دوبُعدی و سهبُعدی با کیفیت بالا
- پشتیبانی از Shaderها برای نورپردازی
- امکان کار با Meshها و مدلهای سهبُعدی
- مناسب برای ساخت بازیهای سهبُعدی، شبیهسازها و ابزارهای گرافیکی پیشرفته
Panda3D موتور بازی سازی مبتنی بر پایتون
Panda3D یک موتور بازیسازی کامل و قدرتمند است که به طور خاص برای ساخت بازیهای سهبُعدی طراحی شده است. این موتور بازیسازی پشتیبانی خوبی از زبان پایتون دارد. در واقع، Panda3D یکی از معدود موتورهای بازیسازی است که امکان برنامه نویسی کامل با پایتون را فراهم میکند. در ادامه برخی از قابلیتهای این موتور بازیسازی قدرتمند آورده شده است.
- ساخت بازیهای سهبُعدی با گرافیک مناسب
- امکان استفاده از Shaderها برای جلوههای بصری
- ابزارهای داخلی برای مدیریت صدا، نور و دوربین
- رابط کاربری ساده
- سیستم Task برای مدیریت قواعد بازی
Panda3D گزینه مناسبی برای افرادی است که میخواهند از یک موتور بازیسازی مبتنی بر پایتون استفاده کنند.
چگونه با پایتون بازی بسازیم؟
پایتون به دلیل سادگی و دارا بودن کتابخانههای متعدد گزینهای بسیار خوب برای شروع یادگیری بازیسازی است. ساخت یک بازی ساده هم چند مرحله مشخص دارد که باید به صورت گامبهگام این مراحل را پیادهسازی کرد.
خوشبختانه زبان پایتون با کتابخانهها و ابزارهای متنوع خود این مراحل را بسیار ساده میکند. در ادامه مهمترین مراحل ساخت بازی با پایتون به زبان ساده آورده شده است.
- طراحی ایده اولیه بازی
- انتخاب کتابخانه مناسب
- ساخت محیط بازی
- طراحی و اضافه کردن اشیا
- اضافه کردن منطق
- تست و رفع اشکال

طراحی ایده اولیه بازی
قبل از نوشتن کد ساخت بازی با پایتون باید نوع بازی خود را مشخص کنید. مشخص کردن اهداف، شخصیتها، مراحل و چالشهای بازی اولین گام در مسیر توسعه است و پایه و اساس پروژه را شکل میدهد.
انتخاب کتابخانه مناسب
در گام بعدی باید بسته به نوع بازی و سطح مهارت خود کتابخانه مناسبی را انتخاب کنید. برای ساخت بازیهای ساده کتابخانه Turtle، برای بازیهای دوبُعدی Pygame یا Arcade و برای بازیهای سهبُعدی Panda3D و PyOpenGL گزینههای خوبی هستند.
ساخت محیط بازی
در این مرحله ساختار کلی بازی را ایجاد میکنید. تنظیماتی همچون اندازه صفحه، عنوان، رنگ پسزمینه و نرخ فریم بازی در این مرحله مشخص میشوند.

طراحی و اضافه کردن اشیا
بعد از ساخت محیط اصلی باید عناصر بازی مانند بازیکنها، دشمنها، موانع و سایر موارد دیگر را به بازی اضافه کرد.
اضافه کردن منطق
این مرحله یکی از مهمترین گامهای ساخت بازی است که باید قوانین بازی را پیادهسازی کرد. حرکت شخصیتها، برخوردها، نحوه امتیازدهی، شرط پایان بازی و ترتیب مراحل در این گام مشخص میشوند.
تست و رفع اشکال
بعد از اتمام روند توسعه باید بازی را چندین مرتبه در شرایط مختلف اجرا کرد تا مشکلات و باگهای احتمالی تشخیص داده شوند. با برطرف کردن این مشکلات میتوان بازی را منتشر کرد. پیشتر در مطلب زیر از مجله فرادرس هر آنچه برای شروع ساخت بازی با پایتون نیاز است مورد بررسی قرار گرفته است.
یادگیری ساخت بازی در پایتون با آموزشهای فرادرس
بعد از آشنایی با مفاهیم اولیه بازیسازی و ساخت اولین بازی ساده در پایتون باید گام بعدی را در مسیر بازیسازی بردارید. نکته بسیار مهمی که در مسیر بازیسازی باید به آن توجه کرد این است که یادگیری بازیسازی فقط با خواندن چند مثال یا پیادهسازی یک بازی کوچک به پایان نمیرسد. برای تبدیل شدن به یک بازیساز واقعی باید ابتدا مبانی را به شکلی اصولی یاد بگیرید. سپس، با انجام پروژههای عملی و با کیفیت مهارت خود را تقویت کنید. در نتیجه انتخاب یک مسیر یادگیری مطمئن برای بازیسازی اهمیت زیادی پیدا میکند.
فرادرس به عنوان بزرگترین پلتفرم آموزش آنلاین کشور مجموعهای کاربردی و پروژه محور با عنوان مجموعه فیلمهای آموزش ساخت بازی در پایتون را منتشر کرده است که لینک آن در ادامه آورده شده است.
این مجموعه آموزشی برای افرادی طراحی شده است که میخواهند بازیسازی را از سطح مبتدی شروع کنند و به تدریج به یک توسعهدهنده حرفهای تبدیل شوند. در این دورهها ابتدا مبانی اولیه ساخت بازیهای دوبُعدی آموزش داده میشود و سپس مباحث حرفهایتر نظیر مدیریت رویدادها، برخوردها، طراحی مرحله، پیادهسازی سیستم امتیازدهی و حتی ساخت بازیهای سهبُعدی با کتابخانههای پیشرفته پایتون مورد بررسی قرار میگیرد. در ادامه تعدادی از فیلمهای آموزشی پیشنهادی در این مجموعه آورده شده است.
- فیلم آموزش بازی سازی در پایتون با کتابخانه Pygame فرادرس
- فیلم آموزش پیادهسازی بازی مار در پایتون با یادگیری تقویتی عمیق فرادرس
- فیلم آموزش پروژه محور ساخت بازی حدس کلمات در پایتون فرادرس
- فیلم آموزش ساخت بازی با کتابخانه Turtle در پایتون فرادرس
- فیلم آموزش پروژه محور ساخت بازی Snake در پایتون فرادرس
- فیلم آموزش طراحی بازی سنگ کاغذ قیچی در پایتون فرادرس

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

آشنایی اولیه با پایتون
برای شروع ساخت بازی با پایتون لازم نیست که یک برنامهنویس حرفهای باشید، ولی آشنایی اولیه با پایتون ضروری است. پیش از شروع فرایند توسعه بازی با پایتون از آشنایی با مفاهیم اولیه زیر اطمینان حاصل کنید.
- متغیرها
- ساختارهای شرطی
- ساختار حلقه تکرار
- توابع
- کلاسها و شیگرایی
تسلط به موارد اشاره شده در بالا به شما در راحتتر نوشتن کد ساخت بازی با پایتون کمک زیادی میکند.
نصب پایتون و ابزارهای مورد نیاز
پیش از شروع ساخت بازی باید آخرین نسخه پایتون را بر روی سیستم خود نصب کنید. از طریق لینک زیر میتوانید آخرین نسخه پایتون را با توجه به سیستمعامل مورد استفاده خود دانلود کنید.
- لینک دانلود پایتون: «+»
علاوه بر این، برای نوشتن کدهای پایتون به یک محیط کد نویسی نیاز دارید که برای این منظور میتوانید از گزینههای زیر استفاده کنید.
- «ویژوال استودیو کد» (Visual Studio Code | VS Code)
- PyCharm
- IDLE
داشتن یک محیط کد نویسی خوب به شما کمک میکند تا سریعتر و راحتتر کد ساخت بازی با پایتون را بنویسید.
انتخاب و نصب کتابخانه مناسب برای بازیسازی
پیش از شروع ساخت بازی با پایتون باید با توجه به هدف و نوع بازی کتابخانه مناسب را انتخاب کنید. در ادامه رایجترین کتابخانههای ساخت بازی در پایتون به همراه کاربرد هر کدام آورده شده است.
- Turtle: بازیهای ساده
- Pygame: بهترین انتخاب برای بازیهای دوبُعدی
- Arcade: نسخه مدرنتر نسبت به Pygame
- Panda3D: بازیهای سهبُعدی
- PyOpenGL: بازیهای سهبُعدی حرفهای
نصب این کتابخانهها بسیار آسان است و تنها با یک دستور سادهpip install میتوان آنها را نصب کرد.
آشنایی با مفاهیم پایه بازیسازی
بازیسازی یک مهارت جداگانه است که فارغ از پلتفرم و زبان برنامه نویسی مورد استفاده قواعد خاص خود را دارد. برای موفقیت در زمینه ساخت بازی با پایتون شناخت مفاهیم پایه بازیسازی ضروری است که در ادامه مهمترین مفاهیم مشترک در بازیسازی آورده شده است.
- مفهوم Game Loop یا حلقه اصلی بازی
- نحوه کنترل ورودیها
- برخورد اشیا
- سرعت اجرای بازی
- مدیریت تصاویر، صداها و انیمیشنها
نصب پایتون و کتابخانه Pygame
پیش از شروع بازیسازی با پایتون و نوشتن اولین خط از کد ساخت بازی با پایتون باید پیشنیازهای لازم را بر روی سیستم خود نصب کنید. مهمترین ابزارها برای شروع بازیسازی زبان پایتون و کتابخانه محبوب Pygame هستند.
پایتون بهصورت پیشفرض ابزارهای گرافیکی حرفهای برای ساخت بازی ندارد، اما با نصب کتابخانه Pygame میتوان به مجموعه کاملی از قابلیتها و امکانات مختلف برای ساخت بازی دسترسی پیدا کرد. نصب و راهاندازی کتابخانه Pygame بسیار آسان است و برای شروع بازیسازی با پایتون بهترین گزینه است. در ادامه این بخش مراحل نصب پایتون و Pygame به صورت گامبهگام توضیح داده شده است.
دانلود و نصب پایتون
برای نصب پایتون باید مراحل زیر را دنبال کنید.
- از طریق این لینک «+» وارد سایت رسمی پایتون شوید.
- با مراجعه به بخش Downloads آخرین نسخه پایتون را با توجه به سیستمعامل خود دانلود کنید.
- در زمان نصب پایتون از فعال بودن گزینه Add Python to PATH اطمینان حاصل کنید. فعال بودن این گزینه به شما اجازه میدهد تا بتوانید پایتون را از طریق خط فرمان اجرا کنید.
- بعد از اتمام نصب برای اطمینان از نصب صحیح پایتون دستور زیر را در «خط فرمان» (Command Prompt) وارد کنید.
در صورت نصب صحیح پایتون بر روی سیستم نسخه نرمافزار نمایش داده خواهد شد.
نصب محیط کد نویسی
برای نوشتن کد ساخت بازی با پایتون پیشنهاد میشود که از یک «ویرایشگر کد» (Code Editor) استفاده کنید. استفاده از یک ویرایشگر کد فرایند ساخت بازی را بسیار آسان میکند. در ادامه چند ویرایشگر کد پیشنهادی برای ساخت بازی با پایتون آورده شده است.
- VS Code
- PyCharm
- IDLE
VS Code به دلیل افزونههای زیاد و سادگی در استفاده بهترین گزینه برای نوشتن کد ساخت بازی با پایتون است. علاوه بر موارد اشاره شده در بالا ویرایشگرهای کد بسیاری برای پایتون وجود دارد که میتوان از آنها نیز برای نوشتن کد بازی استفاده کرد.

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

شروع ساخت بازی با پایتون به صورت گام به گام
در این بخش به صورت گامبهگام نحوه ساخت یک بازی ساده با کتابخانه Pygame در پایتون آموزش داده خواهد شد. هدف اصلی این است که ضمن یادگیری ساختار اصلی بازی با نحوه نوشتن نمونههای واقعی کد ساخت بازی با پایتون نیز آشنا شوید.
۱. ایجاد فایل پروژه
بعد از نصب کتابخانه Pygame در پایتون برای شروع ساخت بازی باید پروژه جدیدی ایجاد کنید. برای این منظور ویرایشگر کد مورد نظر خود را باز کنید و پروژهای جدید با نامgame.py بسازید. در ادامه تمام کدهای بازی داخل این فایل قرار خواهند گرفت.
۲. افزودن کتابخانه Pygame
در این پروژه قرار است از کتابخانه Pygame برای ساخت بازی استفاده شود. بنابراین، در نخستین گام باید این کتابخانه فراخوانی و مقداردهی اولیه شود.
در قطعه کد بالا بعد از فراخوانی کتابخانه تمام ماژولهای لازم برای Pygame با استفاده از دستورpygame.init() مقداردهی اولیه میشوند.
۳. ساخت محیط بازی
در کتابخانه Pygame پیش از پیادهسازی منطق بازی باید اندازه محیط بازی یا به عبارت بهتر فضای بازی را مشخص کرد. قطعه کد زیر محیط بازی در Pygame را آماده میکند.
در مثال بالا، متغیرهایscreen_width وscreen_height به ترتیب نشاندهنده عرض و ارتفاع پنجره بازی هستند. تابعset_mode نیز برای ساخت پنجره بازی با عرض و ارتفاع داده شده مورد استفاده قرار میگیرد. برای تعیین عنوان پنجره از تابعset_caption باید استفاده کرد.
۴. کنترل سرعت اجرای بازی
اتفاقات بازی داخل یک حلقه دائمی اجرا میشوند که به آن «حلقه بازی» (Game Loop) گفته میشود. اگر حلقه بازی بدون محدودیت اجرا شود، آنگاه بازی خیلی سریعتر از حد طبیعی پیش میرود. در نتیجه، بازی بر روی سیستمهای قویتر غیرقابل کنترل میشود.
برای اجرای بازی با سرعت ثابت بر روی تمام دستگاه مفهومی به نام «تعداد فریم بر ثانیه» (Frame Per Second | FPS) وجود دارد. FPS تعداد فریمهای نشان داده شده توسط بازی در واحد زمان را مشخص میکند. به عنوان مثال، FPS 60 یعنی بازی در هر ثانیه صفحه را ۶۰ بار بهروزرسانی میکند. کتابخانه Pygame در پایتون ابزاری به نام Clock دارد که سرعت حلقه بازی را کنترل میکند. در قطعه کد زیر شیclock توسط این ابزار ساخته شده است.
برای تعیین نرخ فریم بازی باید از متدtick() استفاده کرد که در ادامه از آن استفاده خواهد شد.
۴. تعریف رنگهای پرکاربرد
در پروژههای پایتون بهتر است که رنگهای پرکاربرد به صورت متغیر تعریف شوند. با توجه به استفاده از رنگهای مشکی و سفید در بازی متغیرهای زیر تعریف شدهاند.
در قطعه کد بالا، متغیرهایWHITE وBLACK به ترتیب برای تعریف رنگهای سفید و سیاه مورد استفاده قرار گرفتهاند.
۵. ایجاد حلقه اصلی بازی
در همه بازیها یک حلقه دائمی وجود دارد که تا زمانی که بازی بسته نشود، همیشه اجرا میشود. وجود این حلقه در بازی باعث میشود تا موارد زیر رخ دهند.
- بررسی شدن رویدادها
- کشیده شدن صفحه
- حرکت اشیا
- محاسبه برخوردها
- بهروزرسانی گرافیک و انیمیشن بازی
در زبان پایتون دستورwhile True: حلقه بازی را ایجاد میکند. قطعه کد زیر برای ساخت حلقه بازی آورده شده است.
در ادامه این بخش دستورات موجود در حلقه بازی مورد بررسی قرار خواهد گرفت.
بررسی رویدادهای بازی
در هر بازی رویدادهای مختلفی وجود دارد که باید مدیریت شوند. تعدادی از این رویدادها عبارتند از:
- فشار دادن کلیدها
- حرکت ماوس
- کلیک ماوس
- کلیک روی دکمه بستن پنجره
قطعه کد زیر در شروع حلقه بازی آورده شده است.
در کد بالا، رویداد کلیک بر روی دکمه بستن پنجره چک میشود. به زبان ساده، اگر کاربر بر روی دکمه بستن پنجره کلیک کرد، آنگاه بازی بسته خواهد شد.
رنگ کردن صفحه بازی
در ادامه قطعه کد زیر در حلقه اصلی بازی آورده شده است.
این کد صفحه بازی را با رنگ سفید پر میکند. در واقع، با نوشتن این خط فریم قبلی موجود در صفحه پاک شده و صفحه برای رسم فریم جدید آماده میشود. در صورتی که این خط نوشته نشود، آنگاه کشیدگیها و رد اشیا بر روی صفحه باقی میماند.
بهروزرسانی صفحه بازی
قطعه کد زیر صفحه بازی را بهروزرسانی میکند و فریم جدیدی را نمایش میدهد.
در واقع، تغییرات بازی با استفاده از تابعflip() بر روی صفحه بهروزرسانی میشود.
تنظیم سرعت بازی
همان طور که پیشتر گفته شد، سرعت اجرای بازی باید ثابت باشد. برای این منظور قطعه کد زیر آورده شده است.
دستور بالا نرخ فریم بازی را بر روی عدد ۴۰ ثابت نگه میدارد. با اجرای قطعه کد بالا اتفاقات زیر رخ میدهد.
- بازی ۴۰ مرتبه در ثانیه صفحه را بهروزرسانی میکند.
- سرعت اجرای بازی کنترل میشود.
- روی سیستمهای مختلف با سرعت یکنواخت اجرا میشود.
۶. نوشتن کد حرکت بازیکن
در ادامه ساخت بازی با پایتون باید نحوه حرکت بازیکن پیادهسازی شود. برای این منظور یک مربع ساده در صفحه رسم خواهیم کرد که با کلیدهای جهتی قابل کنترل باشد. قطعه کد زیر ساخت مربع و حرکت آن در صفحه بازی را پیادهسازی میکند.
قطعه کد بالا شامل ۳ بخش اصلی است که در ادامه آورده شده است.
- تنظیمات اولیه بازیکن
- حرکت دادن بازیکن
- رسم بازیکن بر روی صفحه
در ادامه هر کدام از موارد بالا به زبان ساده توضیح داده خواهد شد.
تنظیمات اولیه بازیکن
قطعه کد زیر مشخصات اولیه بازیکن را تعیین میکند.
در کد بالا عرض و ارتفاع بازیکن به ترتیب با متغیرهایplayer_width وplayer_height مشخص شده است. همچنین، موقعیت اولیه بازیکن در صفحه نیز با متغیرهایplayer_x وplayer_y مشخص میشود. سرعت حرکت بازیکن نیز با متغیرplayer_speed مشخص میشود که مقدار آن برابر ۱۰ واحد است. یعنی با هر بار فشردن کلیدهای جهتی از صفحه کلید بازیکن ۱۰ پیکسل در صفحه جابجا میشود.
حرکت دادن بازیکن
در ادامه قطعه کد زیر برای حرکت دادن بازیکن در حلقه اصلی بازی آورده شده است.
در مثال بالا متدpygame.key.get_pressed() بررسی میکند که در لحظه چه کلیدی فشرده میشود. در صورت فشردن کلید جهتی چپ دستور زیر اجرا میشود.
دستور بالا مختصات افقی بازیکن را کاهش میدهد. بنابراین، بازیکن به سمت چپ حرکت میکند. اگر کاربر کلید جهتی راست را فشار دهد نیز دستور زیر اجرا میشود.
دستور بالا مختصات افقی بازیکن را افزایش میدهد و باعث حرکت بازیکن به سمت راست میشود. این موضوع برای کلیدهای جهتی بالا و پایین نیز اعمال شده است.
رسم بازیکن بر روی صفحه
در ادامه کد ساخت بازی با پایتون باید بازیکن بر روی صفحه بازی ترسیم شود. قطعه کد زیر بازیکن را بر روی صفحه بازی ترسیم میکند.
دستورscreen.fill(WHITE) صفحه بازی را سفید میکند. در ادامه متدpygame.draw.rect() یک مربع سیاه را در موقعیت(player_x, player_y) با ابعادplayer_width × player_height ترسیم میکند. این مربع سیاه همان بازیکن بازی است. در نهایت خروجی بازی به صورت زیر خواهد بود.

۷. جلوگیری از خروج بازیکن از صفحه بازی
در بیشتر بازیهای دوبُعدی در صورت نبود محدودیت هنگام جابجایی بازیکن با کلیدهای جهتی، امکان خروج بازیکن از صفحه بازی وجود دارد. این اتفاق مشکلی بزرگی برای بازی محسوب میشود. بنابراین، باید یک سیستم ساده برای تشخیص برخورد تعریف شود که اجازه خروج بازیکن از محدوده صفحه بازی را ندهد.
قطعه کد زیر یک سیستم ساده برای تشخیص برخورد را پیادهسازی میکند.
قطعه کد بالا موقعیت بازیکن در صفحه نمایش را محدود میکند. این کد تضمین میکند که بازیکن از پنجره بازی خارج نخواهد شد. در واقع، با شرطهای نوشته شده در بالا بازیکن همواره در محدوده صفحه اصلی باقی خواهد ماند.
۸. اضافه کردن تصویر به بازیکن
در نسخه اولیه بازی، بازیکن با یک مربع ساده مشخص شد.
در ادامه با جایگزینی قطعه کد زیر به جای کد بالا، بازیکن به جای مربع با یک تصویر نشان داده خواهد شد.
کد بالا فایل تصویریplayer.png را به جای بازیکن در نظر میگیرد. فایل تصویریplayer.png باید در کنار فایل اصلی پروژه قرار داشته باشد. اگر فایل در پوشه دیگری قرار باشد، آنگاه باید مسیر فایل را به صورت کامل مشخص کرد. مثال زیر این موضوع را بهتر نشان میدهد.
بعد از تعیین تصویر برای بازیکن باید این تصویر بر روی صفحه بازی نشان داده شود که قطعه کد زیر این کار را انجام میدهد.
متدblit در پایتون تصویر بازیکن را به صفحه میچسباند. در واقع تصویر بازیکن در مختصات مشخص شده یعنی(player_x, player_y) نشان داده خواهد شد.
۹. اضافه کردن صدا به بازی
در ادامه پیادهسازی کد ساخت بازی با پایتون قصد داریم به بازی صدا اضافه کنیم. کتابخانه Pygame در پایتون امکان پخش صداهای ساده مثل افکتها یا آهنگ پسزمینه را دارد. دستور زیر یک فایل صوتی را بارگذاری میکند.
با نوشتن کد زیر نیز این فایل صوتی پخش میشود.
میتوان در زمان رویدادهای بازی نظیر پرش، برخورد، شلیک و برداشتن آیتم این صدا را پخش کرد.
۱۰. بخش نهایی کد ساخت بازی با پایتون
در نهایت بعد از تغییرات انجام شده کد نهایی بازی به صورت زیر خواهد بود.
خروجی نهایی بازی نیز به صورت زیر خواهد بود.

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

نادیده گرفتن حلقه اصلی بازی
بسیاری از افراد مبتدی حلقه اصلی بازی را به درستی پیادهسازی نمیکنند. بنابراین، بازی دچار فریز یا پرش فریم میشود. برای پیشگیری از بروز این خطا باید موارد زیر را هنگام پیادهسازی حلقه اصلی بازی در نظر گرفت.
- مدیریت رویدادها
- بهروزرسانی منطق بازی
- رندر کردن صفحه بازی
- تنظیم FPS بازی
حلقه بازی باید شامل بخشهای اشاره شده در بالا باشد.
استفاده نادرست از زمانبندی
گاهی اوقات افراد تازهکار FPS بازی را تنظیم نمیکنند. تنظیم نکردن FPS باعث میشود بازی روی برخی سیستمها بسیار سریع اجرا شود یا بر روی سیستمهای دیگر بسیار کند باشد. برای برطرف کردن این مشکل بهتر است که یک شی Clock بسازید و مقدار FPS را به صورت ثابت مشخص کنید. به عنوان مثال، کد زیر FPS بازی را برابر عدد ثابت 60 نگه میدارد.
تنظیم عدد ثابت برای FPS باعث میشود که افراد با سیستمهای مختلف تجربه یکسانی از اجرای بازی داشته باشند.
خروج بازیکن از صفحه بازی
یکی دیگر از اشتباهات رایج افراد مبتدی این است که هیچ گونه محدودیتی برای حرکت کاراکتر اعمال نمیکنند. در نتیجه، کاراکتر ممکن است که از صفحه بازی خارج شود. بهترین راهحل این است که با تعیین مقادیرplayer_x وplayer_y و استفاده از چند شرط ساده مانع خروج کاراکتر از صفحه بازی شد.
مدیریت نادرست رویدادها
رویدادهای مختلف بازی را باید در نظر گرفت و آنها را پیادهسازی کرد. نادیده گرفتن رویدادهایی مانندQUIT باعث میشود که پنجره بازی بسته نشود یا برنامه هنگ کند. برای جلوگیری از بروز این مشکل نیز باید همیشه رویداد بستن پنجره را در حلقه اصلی بازی مدیریت کنید.

بارگذاری مکرر تصاویر و صداها در حلقه بازی
یکی دیگر از اشتباهات رایج هنگام نوشتن کد ساخت بازی با پایتون این است که تصاویر و صداهای بازی را در حلقه اصلی بازی بارگذاری کنید. با انجام این کار در هر فریم بازی تصاویر و صداها بارگذاری میشوند که باعث افت شدید عملکرد میشود. برای جلوگیری از بروز این مشکل باید تصاویر و صداهای بازی را خارج از حلقه اصلی بازی بارگذاری کرد.
عدم استفاده از توابع
نوشتن همه کدهای بازی در یک بلاک بزرگ باعث پیچیده شدن بازی و دشوار شدن فرایند توسعه میشود. بهتر است که از توابع، کلاسها و ساختارهای ساده برای مدیریت بخشهای مختلف بازی استفاده کنید.
چگونه پایتون را یاد بگیریم؟
پایتون یکی از بهترین گزینهها برای ورود به دنیای جذاب برنامه نویسی است. سادگی سینتکس، کاربردهای گسترده در زمینههایی مانند هوش مصنوعی، وب، اتوماسیون، تحلیل داده، امنیت و حتی بازیسازی باعث شده است که پایتون به انتخابی ایدهآل برای مبتدیان و حرفهایها تبدیل شود.
در همین راستا فرادرس با همکاری مدرسین با تجربه آموزشهای متعددی را در حوزه زبان برنامه نویسی پایتون منتشر کرده است. این آموزشها در مجموعه فیلمهای آموزش برنامه نویسی پایتون مقدماتی تا پیشرفته قابل دسترسی هستند که لینک آن در ادامه آورده شده است.
در این مجموعه آموزشی از مبانی اولیه و نصب پایتون گرفته تا مباحث پیچیدهای چون برنامه نویسی شیگرا و کار با ساختمان دادهها در پایتون مورد بررسی قرار گرفته است. بنابراین، هر فردی با هر سطحی از مهارت برنامه نویسی میتواند از آموزشهای موجود در این مجموعه آموزشی استفاده کند. یکی از مهمترین ویژگیهای آموزشهای موجود در این مجموعه رویکرد پروژه محور آنها است. در واقع، حل مثالها و پروژههای عملی به شما کمک میکند تا مفاهیم برنامه نویسی را به شکلی عمیق یاد بگیرید. در ادامه تعدادی از آموزشهای موجود در این مجموعه آورده شده است.
- فیلم آموزش مقدماتی برنامه نویسی پایتون
- فیلم آموزش تکمیلی برنامه نویسی پایتون
- فیلم آموزش مثالهای عملی در برنامه نویسی پایتون
- فیلم آموزش یادگیری ماشین با پایتون
- فیلم آموزش مقدماتی کار با پایگاههای داده در پایتون
- فیلم آموزش برنامه نویسی شی گرا در پایتون

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












