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

زبان های برنامه نویسی
چهارشنبه 04 بهمن 1402
جهت مطالعه این مقاله به 15 دقیقه زمان نیاز دارید
آنچه در این مقاله خواهیم خواند:

ساخت بازی یکی از پرطرفدارترین حیطه‌های برنامه نویسی پایتون است. با استفاده از کتابخانه pygame در پایتون بازی‌های متنوعی می‌توان ساخت. این کتابخانه امکان  ساخت بازی دوبعدی را فراهم می‌کند. با استفاده از این کتابخانه می‌توان صدا نیز به بازی اضافه کنیم.

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

 

ساخت بازی با پایتون برای اندروید

ساخت بازی با پایتون برای اندروید

 

ساخت بازی با پایتون برای اندروید روش‌های مختلفی دارد. یکی از روش‌های معمول استفاده از Kivy است که این فریم‌ورک اجازه می‌دهد تا  با پایتون برای اندروید بازی بسازیم. همچنین توزیع  Pygame Subset for Android (PGS4A)  نیز اجرای بازی‌های pygame را در اندروید فراهم می‌کند.

 

کد ساخت بازی با پایتون برای اندروید

در ابتدا نیاز داریم که کتابخانه pygame  را نصب داشته باشیم. برای نصب از  pip استفاده می‌کنیم.

 

نصب کتابخانه pygame با pip

نصب کتابخانه pygame با pip

 

ابتدا باید سیستم ما به اینترنت دسترسی داشته باشد. سپس برای نصب کتابخانه،  کافیست تا در ترمینال یا cmd سیستم  کد زیر را وارد کنیم:

pip install pygame 

 

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

 

بیشتر بخوانید: پایتون چیست

 

لیست کتابخانه‌های نصب شده در پایتون

برای اطمینان از نصب بودن کتابخانه pygame یا هریک از سایر کتابخانه‌ها  کافیست تا در ترمینال یا  cmd سیستم عبارت زیر را تایپ کنیم:

pip list 

 

با نوشتن این کد و زدن دکمه اینتر لیست کتابخانه‌های نصب شده در پایتون را مشاهده می‌کنیم. 

 

آموزش رایگان ساخت بازی با پایتون

حال که کتابخانه مورد نظرمان را نصب کرده‌ایم به سراغ نوشتن کدها می‌رویم. در اینجا از ویژوال استدیو کد برای کدنویسی استفاده کرده‌ایم. یک فایل پایتون ایجاد می‌کنیم. کتابخانه‌های مورد نظرمان یعنی  sys و pygame  و random را فراخوانی می‌کنیم. 


import pygame
import sys
import random

 

بیشتر بخوانید: ساخت بازی سنگ کاغذ قیچی با پایتون

 

ساخت صفحه اصلی بازی در پایتون

ساخت صفحه اصلی بازی در پایتون

 

حال برای ساخت صفحه بازی در پایتون، باید صفحه را فراخوانی کنیم که این کد را می‌نویسیم:


pygame.init()

 

برای ایجاد صفحه بازی عرض صفحه و ارتفاع را تعیین می‌کنیم. این ابعاد را می‌توانیم به اندازه دلخواه تغییر دهیم.


width=600
height=400

 

حال به صفحه بازی این ابعاد را می‌دهیم.

screen=pygame.display.set_mode((width,height))

 

مطلب مرتبط: ساخت ماشین حساب با پایتون

 

انتخاب تیتر برای صفحه بازی پایتون

انتخاب تیتر برای صفحه بازی پایتون

 

در این قسمت می‌خواهیم تیتر صفحه مورد نظرمان را اضافه کنیم. این صفحه را با نام Poulstar می‌سازیم.


pygame.display.set_caption("Poulstar")

 

ساخت راکت بازی در پایتون

ساخت راکت بازی در پایتون

 

برای مرتب نوشتن کدها  در نوشتن هر قسمت یک خط کامنت می‌گذاریم و توضیحات لازم را می‌نویسیم. 


# set up paddle

 

حال  عرض و ارتفاع پدل و رنگ مورد نظرمان را تعیین می‌کنیم. رای این کار عرض راکت را 100 و ارتفاع آن را 10 در نظر گرفته‌ایم. رنگ راکت را سبز انتخاب کردیم. تمامی این ابعاد به دلخواه انتخاب شده‌اند و می‌توانیم رنگ و ابعاد متفاوتی نیز انتخاب کنیم. 


paddle_width=100
paddle_height=10
paddle_color="green"

 

در این مرحله نیاز داریم تا جای قرارگیری راکت را انتخاب کنیم. می‌خواهیم راکت در پایین صفحه در وسط صفحه بماند. دقت کنیم که برای قرار گیری راکت در پایین صفحه از لحاظ محور x ها باید مرکز width آن در مرکز صفحه باشد و همچنین از لحاظ محور Y ها (ارتفاع) نیز در پایین صفحه قرار بگیرد اما برای اینکه کمی بالاتر از پایین‌ترین نقطه قرار بگیری دبه طور مثال 10 پیکس از آن کم می‌کنیم. 


paddle_position=[width//2-paddle_width//2,height-paddle_height-10]

 

مطلب مرتبط:  گرافیک پایتون

 

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

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

 

ساخت توپ بازی در پایتون

برای ساخت توپ، ابتدا آن قسمت را با یک خط کامنت، جدا می‌کنیم. ابعاد توپ مورد نظرمان را 15 و رنگ آن را قرمز در نظر می‌گیریم. 


# set up ball
ball_radius=15
ball_color="red"

 

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


ball_position=[random.randint(ball_radius,width-ball_radius),0]

 

توپ باید از بالای صفحه به پایین صفحه بیاید پس باید روی محور y تغییر کند. در اینجا میزان پایین آمدن توپ را در هر بار تغییرات 5 در نظر گرفته‌ایم.


ball_speed=[0,5]

 

مطلب مرتبط: ساخت بازی 2048 با پایتون

 

طراحی توپ بازی با پایتون

در این بازی نیازمند یک امتیاز هستیم که هر بار توپ را دریافت می‌کنیم مقدار آن تغییر کند. پس یک متغیر می‌سازیم و نام آن را score می‌گذاریم. همچنین برای متغیرمان فونت و سایز فونت را نیز تعریف می‌کنیم.  در اینجا فونت خاصی مد نظر ما نبود پس  None نوشتیم و اندازه فونت را 36 در نظر گرفتیم.


# set up score
score=0
font=pygame.font.Font(None,36)

 

آموزش ساخت نهایی توپ بازی با پایتون

حال تمام ملزومات بازی را ساختیم. کدها اصلی بازی را شروع می‌کنیم. یک خط کامنت شروع قسمت اصلی بازی را می‌نویسیم همچنین این بازی بی‌انتهاست پس برای آن از حلقه while استفاده می‌کنیم. دقت کنیم که تمامی کدها باید به اندازه 4 فاصله جلوتر نوشته شوند تا زیرمجموعه حلقه قرار گیرند. همچنین اولین قسمت به نوشتن جزییات دکمه close می‌پردازیم. برای این کار کامنت game over را می‌نویسیم.


# main game loop
while True:
   # game over

 

می‌خواهیم اگر دکمه بستن را فشار دادیم بازی بسته شده پس از pygame  و sys باید خروج کنیم. برای اینکار ابتدا بررسی می‌کنیم که وضعیت event به چه صورت است. اگر در وضعیت QUIT قرار گرفت پس کدهای خروج را تکمیل می‌کنیم.


   for event in pygame.event.get():
       if event.type==pygame.QUIT:
           pygame.quit()
           sys.exit()

 

کد حرکت توپ در پایتون

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


   # update ball pisition
   ball_position[1]+=ball_speed[1]

 

نکته قابل توجه شماره‌گذاری ایندکس خانه‌های یک لیست از شماره 0 شروع می‌شود پس خانه دوم شماره 1 خواهد بود.

 

مطلب مرتبط: ساخت بازی سه بعدی با پایتون

 

رنگ صفحه در کتابخانه پای گیم

برای ست کردن رنگ صفحه در کتابخانه پای گیم مقدار fill را به رنگ دلخواه می‌نویسیم که در اینجا صفحه ما رنگ سفید را انتخاب کردیم.


   # screen fill
   screen.fill("white")

 

کشیدن راکت در طول برنامه پایتون

این قسمت فقط کافیست تا جزئیات راکتی که بالا نوشتیم را وارد کنیم تا راکت طراحی شود. برای این‌کار ابتدا محل کشیدن راکت را screen تعیین می‌کنیم. سپس رنگ، محل قرارگیری در محور x  و محل قرارگیری در محور y  می‌نویسیم. سپس عرض و ارتفاع راکت را مشخص می‌کنیم. دقت کنیم که راکت در واقع یک مستطیل است و از تابع rec که مخفف rectangle است، استفاده می‌کنیم. همچنین می‌توانستیم کل دستورها را در یک خط نیز بنویسیم.


# draw paddle
   pygame.draw.rect(screen,paddle_color,
                    (paddle_position[0],
                     paddle_position[1],
                     paddle_width,paddle_height))

 

کشیدن توپ در طول بازی پایتون

برای کشیدن توپ نیز، همانند مستطیل عمل کرده و از تابع circle استفاده می‌کنیم.


   # draw ball
   pygame.draw.circle(screen,ball_color,
                   (int(ball_position[0]),
                   int(ball_position[1])),
                   ball_radius)

 

اضافه کردن امتیاز به بازی در پایتون

در این قسمت نیز امتیاز را به بازی اضافه می‌کنیم.


   # draw score
   score_text=font.render(f"Score: {score}",True,"green")
   screen.blit(score_text,(10,10))

 

کد اصلی بازی با پایتون

 برای آپدیت شدن صفحه در هر لحظه کد زیر را می‌نویسیم.


   # update display
   pygame.display.flip()

 

و تعیین می‌کنیم که صفحه هر چند لحظه یک‌بار آپدیت شود.


   # frame rate
   pygame.time.Clock().tick(30)

 

  حال چک می‌کنیم که اگر توپ از صفحه خارج شد مجدد از بالای صفحه در یک موقعیت جدید ظاهر شود.


   # ball out of screen
   if ball_position[1]>height:
       ball_position=[random.randint(ball_radius,width-ball_radius),0]

 

مطلب مرتبط: ساخت بازی دوز با پایتون

 

بایند کردن، فشردن دکمه در پایتون


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


   # left and right movement
   keys=pygame.key.get_pressed()
   if keys[pygame.K_LEFT] and paddle_position[0]>0:
       paddle_position[0]-=5
   if keys[pygame.K_RIGHT] and paddle_position[0]<width-paddle_width:
       paddle_position[0]+=5

 

کد امتیازدهی در ساخت بازی با پایتون

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


   # check score
   if (paddle_position[0]<ball_position[0]<paddle_position[0]+paddle_width and
       paddle_position[1]<ball_position[1]<paddle_position[1]+paddle_height):
       ball_position=[random.randint(ball_radius,width-ball_radius),0]
       score+=1

 

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

 

کدهای ساخت بازی با پایتون در یک نگاه

کلیه کدها به شرح زیر است:


import pygame
import sys
import random

pygame.init()

width=600
height=400
screen=pygame.display.set_mode((width,height))
pygame.display.set_caption("Poulstar")

# set up paddle
paddle_width=100
paddle_height=10
paddle_color="green"
paddle_position=[width//2-paddle_width//2,height-paddle_height-10]

# set up ball
ball_radius=15
ball_color="red"
ball_position=[random.randint(ball_radius,width-ball_radius),0]
ball_speed=[0,5]

# set up score
score=0
font=pygame.font.Font(None,36)

# main game loop
while True:
   # game over
   for event in pygame.event.get():
       if event.type==pygame.QUIT:
           pygame.quit()
           sys.exit()
           
   # update ball pisition
   ball_position[1]+=ball_speed[1]
   
   # screen fill
   screen.fill("white")
   
   # draw paddle
   pygame.draw.rect(screen,paddle_color,
                    (paddle_position[0],
                     paddle_position[1],
                     paddle_width,paddle_height))
   
   # draw ball
   pygame.draw.circle(screen,ball_color,
                   (int(ball_position[0]),
                   int(ball_position[1])),
                   ball_radius)
   
   # draw score
   score_text=font.render(f"Score: {score}",True,"green")
   screen.blit(score_text,(10,10))
   
   # update display
   pygame.display.flip()
   
   # frame rate
   pygame.time.Clock().tick(30)
   
   # ball out of screen
   if ball_position[1]>height:
       ball_position=[random.randint(ball_radius,width-ball_radius),0]
   
   # left and right movement
   keys=pygame.key.get_pressed()

   if keys[pygame.K_LEFT] and paddle_position[0]>0:
       paddle_position[0]-=5
   if keys[pygame.K_RIGHT] and paddle_position[0]<width-paddle_width:
       paddle_position[0]+=5
       # paddle_position[0]=paddle_position[0]+5

   # check score
   if (paddle_position[0]<ball_position[0]<paddle_position[0]+paddle_width and
       paddle_position[1]<ball_position[1]<paddle_position[1]+paddle_height):
       ball_position=[random.randint(ball_radius,width-ball_radius),0]
       score+=1

 

نتیجه‌گیری

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