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

بازی سازی با پایتون
مقالات پایتون
مدت زمان مطالعه : دقیقه
  • 0 نفر پسندیدند
  • ذخیره کردن
  • 3038
فهرست
  • آموزش ساخت بازی با پایتون
  • بازی سازی با پایتون برای اندروید
  • ساخت بازی سه بعدی با پایتون
  • بازی های ساخته شده با پایتون
  • ساخت بازی دو بعدی با پایتون
  • ساخت بازی مار با پایتون
  • ساخت بازی منچ با پایتون
  • سخن پایانی

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

بازی سازی با پایتون روز‌به‌روز در حال گسترش است. بازی سازی، حرفه‌ای جذاب، پر طرف‌دار و پول‌ساز است؛ بنابراین بسیاری از برنامه‌نویسان آن را انتخاب می‌کنند. با کمک زبان‌های مختلف می‌توان بازی سازی کرد؛ استفاده از کتابخانه pygame در پایتون می‌تواند این کار را برای افراد مبتدی تسهیل کند. برای آموزش بازی سازی با پایتون همراه ما باشید.

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

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

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

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

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

حال سؤال اینجا است که آیا بازی سازی با پایتون برای اندروید امکان‌پذیر است؟

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

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

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

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

ساخت بازی سه بعدی با پایتون

ساخت بازی سه بعدی با پایتون به‌وسیله کتابخانه‌هایی که برای آن ساخته شده است؛ کار پیچیده‌ای نیست. به‌عنوان‌مثال یک کتابخانه به نام panda3D برای بازی سازی با پایتون طراحی شده است که به‌وسیله آن می‌توان بازی‌های سه ‌بعدی را طراحی کرد.

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

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

قبل از طراحی حتماً سعی کنید بهترین زبان را انتخاب کنید و سپس برترین موتور مرتبط با آن زبان برنامه‌نویسی را برای طراحی بازی انتخاب کنید؛ اما اگر باز هم مصمم به استفاده از پایتون برای بازی سازی هستید بهتر است از panda3D برای طراحی بازی‌های سه بعدی و pagame برای طراحی بازی‌های دو بعدی استفاده کنید.

ساخت بازی سه بعدی با پایتون

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

پایتون یک زبان برنامه‌نویسی سمت سرور است و کمتر کسی باور می‌کند که می‌توان بازی سازی با پایتون را انجام داد. بااین‌حال بازی سازی با پایتون مرسوم است و بسیاری از بازی‌سازان، بازی سازی با پایتون را انتخاب می‌کنند.

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

  1. Civilization IV

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

  1. Battlefield 2

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

  1. Sims 4

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

  1. Toontown Online

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

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

toontown

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

با استفاده از کتابخانه‌های Arcade و pygame می‌توان بازی سازی گرافیکی با پایتون انجام داد. با استفاده از کتابخانه‌ها و دستورات پایتون می‌توان کاراکترها و محیط‌های ساده دو بعدی را برای بازی‌های مختلف طراحی کرد.

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

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

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

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

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

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

این کتابخانه با دستور زیر بر روی سیستم نصب می‌شود و برای بازی سازی با پایتون از آن استفاده می‌شود:

pip install pygame

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

  • رسم صفحه‌نمایش

بعد از نصب این کتابخانه باید صفحه‌نمایش بازی طراحی شود. قطعه کد زیر این کار را برای شما انجام می‌دهد:

.import pygame

 .pygame.init()import pygame

 .pygame.init()

 . window= pygame.display.set_mode((400,300))

 .pygame.display.update()

 .pygame.quit()

 .quit()

dis=pygame.display.set_mode((400,300))

pygame.display.update()

pygame.quit()

u خط 3 را باید حتماً استفاده کنید؛ زیرا در صورت استفاده‌نکردن در هنگام بازی سازی با پایتون، پایتون نمی‌داند که شما قرار است از کتابخانه pygame استفاده کنید؛ بنابراین در دستورات استفاده از این کتابخانه کار نخواهند کرد.

خط 4 برای رسم پنجره کاربرد دارد. این تابع مشخص می‌کند که شما قصد ترسیم یک صفحه‌نمایش یا پنجره به طول 400 و عرض 300 پیکسل را دارید.

در خط 5 ما یک شی به نام window تعریف کرده‌ایم. این شی به‌وسیله تابع، یک پنجره تشکیل داده است. هر زمان که خط 5 فراخوانی می‌شود؛ یکبار هم پنجره نمایش داده می‌شود.

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

البته با اجرای کد بالا هر بار پنجره سیاه، باز و بسته می‌شود. برای رفع این مشکل باید از یک حلقه استفاده کنید. با شرط if موجود در قطعه کد زیر با کلیک بر روی دکه ضربدر، پنجره به اختیار خودتان بسته خواهد شد. کدهای زیر را بین خطوط 5 و 6 جای‌گذاری کنید:

pygame.display.set_caption('Snake game made by becode’)
game_over=False
while not game_over:
    for event in pygame.event.get():
 if event.type==pygame.QUIT:
            game_over=True
        print(event)

snake game

  • ایجاد مار

قدم بعدی در بازی سازی با پایتون، ایجاد مار است. برای ایجاد آن باید از یک‌سری توابع مربوط به کتابخانه pygame استفاده کرد. با قراردادن کدهای زیر مار شما ایجاد خواهد شد:

pygame.draw.rect(dis,blue,[200,150,10,10])
    pygame.display.update()
  • تکمیل حرکت و تکامل مار

حال نوبت به حرکت‌دادن مار درون پنجره ایجاد شده رسیده است. برخی از رویدادهای موجود در KEYDOWN Pygame باعث حرکت مار می‌شوند. برای غذاخوردن و تکامل یافتن، سوختن و سایر امکانات بازی می‌توانید از کدهای زیر استفاده کنید.  قطعه کد زیر یک بازی کامل مار به همراه تمامی امکانات را برای شما طراحی می‌کند:

import pygame
import time
import random
 
pygame.init()
 
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
 
display_width = 600
display _height = 400
 
dis = pygame.display.set_mode((dis_width, display_height))
pygame.display.set_caption('Snake game made by becode’)
 
clock = pygame.time.Clock()
 
snk_block = 10
snk_speed = 15
 
font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)
 
 
def Your_score(score):
    value = score_font.render("Your Score: " + str(score), True, yellow)
    dis.blit(value, [0, 0])
 
 
 
def our_snake(snk_block, snake_list):
    for x in snake_list:
        pygame.draw.rect(dis, black, [x[0], x[1], snk_block, snk_block])
 
 
def message(msg, color):
    mesg = font_style.render(msg, True, color)
    dis.blit(mesg, [display_width / 6, display_height / 3])
 
 
def gameLoop():
    game_over = False
    game_close = False
 
    x1 = display_width / 2
    y1 = display_height / 2
 
    x1_modify = 0
    y1_modify = 0
 
    snake_List = []
    Length_of_snake = 1
 
    foodx = round(random.randrange(0, display_width - snk_block) / 10.0) * 10.0
    foody = round(random.randrange(0, display_height - snk_block) / 10.0) * 10.0
 
    while not game_over:
 
        while game_close == True:
            dis.fill(blue)
            message("You Lost! Press C-Play Again or Q-Quit", red)
            Your_score(Length_of_snake - 1)
            pygame.display.update()
 
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        gameLoop()
 
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_modify = -snk_block
                    y1_ modify = 0
                elif event.key == pygame.K_RIGHT:
                    x1_ modify = snk_block
                    y1_ modify = 0
                elif event.key == pygame.K_UP:
                    y1_ modify = -snk_block
                    x1_ modify = 0
                elif event.key == pygame.K_DOWN:
                    y1_ modify = snk_block
                    x1_ modify = 0
 
        if x1 >= display_width or x1 < 0 or y1 >= display_height or y1 < 0:
            game_close = True
        x1 += x1_ modify
        y1 += y1_ modify
        dis.fill(blue)
        pygame.draw.rect(dis, green, [foodx, foody, snk_block, snk_block])
        snake_Head = []
        snake_Head.append(x1)
        snake_Head.append(y1)
        snake_List.append(snake_Head)
        if len(snake_List) > Length_of_snake:
            del snake_List[0]
 
        for x in snake_List[:-1]:
            if x == snake_Head:
                game_close = True
 
        our_snake(snk_block, snake_List)
        Your_score(Length_of_snake - 1)
 
        pygame.display.update()
 
        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, dis_width - snk_block) / 10.0) * 10.0
            foody = round(random.randrange(0, display_height - snk_block) / 10.0) * 10.0
            Length_of_snake += 1
 
        clock.tick(snk_speed)
 
    pygame.quit()
    quit()
 
 
gameLoop()

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

ساخت بازی منچ با پایتون

ساخت بازی منچ با پایتون از طریق کتابخانه pagame میسر است. منچ بازی پر طرف‌داری است که تقریباً می‌شود آن را شبیه به بازی دوز طراحی کرد.

در زیر قطعه کدی قرار داده شده است که می‌توان خانه‌هایی مشابه با خانه‌های بازی منچ طراحی کرد. با قطعه کدهای زیر می‌توان بازی دوز را طراحی کرد:

  • نصب کتابخانه pagame
pip install pygame
  • بهره‌بردن از کتابخانه در بازی‌سازی با پایتون با دستور زیر:
pygame.init()
  • ایجاد پنجره برای بازی
screen = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Manch Tak")
  • تعیین رنگ
white = (255, 255, 255)
black = (0, 0, 0)
  • ایجاد صفحه بازی
board = [" ", " ", " ", " ", " ", " ", " ", " ", " "]
def draw_board(screen):
    pygame.draw.line(screen, black, (100, 0), (100, 300), 2)
    pygame.draw.line(screen, black, (200, 0), (200, 300), 2)
    pygame.draw.line(screen, black, (0, 100), (300, 100), 2)
    pygame.draw.line(screen, black, (0, 200), (300, 200), 2)
  • حرکت بازکنان
def draw_move(screen, row, col, player):
    x = col * 100 + 50
    y = row * 100 + 50
    font = pygame.font.Font(None, 100)
    text = font.render(player, 1, black)
    textpos = text.get_rect(centerx=x, centery=y)
    screen.blit(text, textpos)
  • چک‌کردن و تعیین برنده
def check_win(board):
    win_combinations = [(0, 1, 2), (3, 4, 5), (6, 7, 8), (0, 3, 6), (1, 4, 7), (2, 5, 8), (0, 4, 8), (2, 4, 6)]
    for combo in win_combinations:
        if board[combo[0]] != " " and board[combo[0]] == board[combo[1]] == board[combo[2]]:
            return True
    return False
  • نشان‌دادن برنده بازی
def show_winner(screen, player):
    font = pygame.font.Font(None, 50)
    text = font.render("Player " + player + " wins!", 1, white)
    screen.blit(text, (50, 400))
  • حلقه بازی
current_player = "X"
game_over = False
while not game_over:
    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = pygame.mouse.get_pos()
            row = y // 100
            col = x // 100
            index = row * 3 + col
            if board[index] == " ":
                board[index] = current_player
                draw_move(screen, row, col, current_player)
                if check_win(board):
                    show_winner(screen, current_player)
                    game_over = True
                else:
                    current_player = "O" if current_player == "X" else "X
  • ترسیم صفحه
screen.fill(white)
    draw_board(screen)
    for i in range(9):
        row = i // 3
        col = i % 3
        draw_move(screen, row, col, board[i])
  • انتهای کد
pygame.display.update()
pygame.quit()

tic toc toe

سخن پایانی

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

 

منابع:

geeksforgeeks.org

explaingamedev.com

 

چه امتیازی به این مقاله میدهید

جالب نبود

متوسط

خوب

خیلی خوب

خیلی عالیه

مدیر سایت

نویسنده

مدیر سایت

دیدگاه ها
0 دیدگاه