آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

ارسال مجدد کد یکبار مصرف (00:90)
  • 02177010771
  • info@chabokacademy.com
  • اخبار و مقالات
  • علاقمندی ها
آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
شروع کنید
0

وبلاگ

آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی > اخبار و مقالات > برنامه نویسی > چگونه از PyGame برای ساخت بازی‌های دوبعدی با Python استفاده کنیم؟

چگونه از PyGame برای ساخت بازی‌های دوبعدی با Python استفاده کنیم؟

آذر 21, 1403
ارسال شده توسط ادمین آکادمی
برنامه نویسی
آموزش ساخت بازی دوبعدی با PyGame

فهرست مطالب این نوشته

Toggle
  • پیش‌نیازها برای ساخت بازی‌های ساده با PyGame
  • ایجاد پروژه پایه
  • اضافه کردن شخصیت اصلی
  • ایجاد دشمن
  • شناسایی برخوردها
  • افزودن امتیازدهی و جان‌ها
  • توسعه و گسترش بازی دوبعدی با PyGame
    • افزودن مراحل مختلف با دشمنان متنوع
    • اضافه کردن صداهای پس‌زمینه و جلوه‌های صوتی
تعداد بازدید: 121
5/5 امتیاز

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

chabokacademy
دوره‌های آموزشی آکادمی چابک
با تخفیف‌های ویژه آکادمی چابک، یادگیری را شروع کنید!

مشاهده دوره‌ها

​

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

پیش‌نیازها برای ساخت بازی‌های ساده با PyGame

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

  • pip install pygame

در نظر داشته باشید که تسلط بر مفاهیمی همچون حلقه‌ها، متغیرها و توابع برای درک بهتر PyGame لازم و مهم است. علاوه بر این، برنامه‌نویسی خود را در محیط‌هایی مثل Visual Studio Code یا PyCharm انجام دهید تا خطایابی ساده‌تر شود.

بازی دوبعدی با PyGame و Python

ایجاد پروژه پایه

ابتدا یک پروژه ساده بسازید که شامل نمایش یک پنجره بازی باشد. با استفاده از PyGame، می‌توانید پنجره‌ای با اندازه مشخص ایجاد کرده و یک رنگ پس‌زمینه به آن اختصاص دهید:

import pygame

pygame.init()

# تنظیم ابعاد پنجره

screen = pygame.display.set_mode((800, 600))

pygame.display.set_caption(“بازی دوبعدی با PyGame”)

# حلقه اصلی بازی

running = True

while running:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            running = False

    screen.fill((0, 0, 0))  # تغییر رنگ پس‌زمینه به سیاه

    pygame.display.update()

pygame.quit()

اضافه کردن شخصیت اصلی

شخصیت اصلی بازی شما می‌تواند به سادگی یک مربع یا دایره باشد. با استفاده از pygame.draw.rect()، یک مربع را روی صفحه رسم کنید و سپس با استفاده از کیبورد آن را حرکت دهید:

player = pygame.Rect(375, 500, 50, 50)  # تعیین موقعیت و ابعاد شخصیت

while running:

    keys = pygame.key.get_pressed()

    if keys[pygame.K_LEFT]:

مراحل یادگیری پایتون: چگونه در 60 روز برنامه‌نویس حرفه‌ای شویم؟
بخوانید

        player.x -= 5

    if keys[pygame.K_RIGHT]:

        player.x += 5

    screen.fill((0, 0, 0))

    pygame.draw.rect(screen, (255, 0, 0), player)

    pygame.display.update()

ایجاد دشمن

برای اضافه کردن دشمن به بازی، می‌توانید شیئی مشابه ایجاد کنید که در مسیر مشخصی حرکت کند. در اینجا، دشمن به صورت رفت‌وبرگشتی حرکت خواهد کرد:

enemy = pygame.Rect(200, 200, 50, 50)

enemy_speed = 3

while running:

    enemy.x += enemy_speed

    if enemy.x >= 750 or enemy.x <= 0:

        enemy_speed = -enemy_speed

    screen.fill((0, 0, 0))

    pygame.draw.rect(screen, (255, 0, 0), player)

    pygame.draw.rect(screen, (0, 255, 0), enemy)

    pygame.display.update()

شناسایی برخوردها

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

if player.colliderect(enemy):

    print(“برخورد!”)

افزودن امتیازدهی و جان‌ها

با اضافه کردن سیستم امتیازدهی و تعداد جان‌ها، می‌توانید بازی را چالش‌برانگیزتر کنید. برای نمایش اطلاعات، از قابلیت متن‌نویسی PyGame استفاده کنید:

font = pygame.font.Font(None, 36)

score = 0

lives = 3

while running:

    text = font.render(f”امتیاز: {score}  جان‌ها: {lives}”, True, (255, 255, 255))

    screen.blit(text, (10, 10))

    pygame.display.update()

آموزش ساخت بازی‌ با PyGame

توسعه و گسترش بازی دوبعدی با PyGame

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

افزودن مراحل مختلف با دشمنان متنوع

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

در اینجا مثالی از تعریف چند مرحله با دشمنان مختلف آورده شده است:

levels = [

    {“enemy_speed”: 3, “enemy_color”: (255, 0, 0)},  # مرحله اول

    {“enemy_speed”: 5, “enemy_color”: (0, 255, 0)},  # مرحله دوم

    {“enemy_speed”: 7, “enemy_color”: (0, 0, 255)},  # مرحله سوم

]

current_level = 0

enemy = pygame.Rect(200, 200, 50, 50)

enemy_speed = levels[current_level][“enemy_speed”]

while running:

    enemy.x += enemy_speed

    if enemy.x >= 750 or enemy.x <= 0:

        enemy_speed = -enemy_speed

    # تغییر مرحله در صورت عبور از شرایط خاص

    if score > 10 * (current_level + 1):

        current_level += 1

        if current_level < len(levels):

            enemy_speed = levels[current_level][“enemy_speed”]

    screen.fill((0, 0, 0))

    pygame.draw.rect(screen, levels[current_level][“enemy_color”], enemy)

    pygame.display.update()

اضافه کردن صداهای پس‌زمینه و جلوه‌های صوتی

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

برای افزودن صدا، ابتدا فایل‌های صوتی را در پروژه خود قرار دهید و سپس از pygame.mixer برای پخش آن‌ها استفاده کنید:

Pickling و Unpickling در پایتون چیست؟ همه چیز درباره ذخیره‌سازی داده‌ها
بخوانید

# بارگذاری صداها

pygame.mixer.init()

background_music = pygame.mixer.Sound(“background.wav”)

collision_sound = pygame.mixer.Sound(“collision.wav”)

# پخش صدای پس‌زمینه

background_music.play(-1)  # پخش مداوم

while running:

    if player.colliderect(enemy):  # برخورد

        collision_sound.play()

    screen.fill((0, 0, 0))

    pygame.display.update()

pygame.mixer.quit()

کلام آخر

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

برای یادگیری ساخت بازی با Python و PyGame می‌توانید به آکادمی ما بپیوندید! در آکادمی چابک، شما بخشی از یک جامعه یادگیری پویا خواهید بود که به شما کمک می‌کند تا با اعتمادبه‌نفس، مهارت‌های جدیدی بیاموزید. یادگیری در کنار حرفه‌ای‌ها و دیگر علاقه‌مندان، تجربه‌ای بی‌نظیر خواهد بود!

منبع:

www.codingal.com​

قبلی آموزش ساخت و پیاده‌سازی سیستم‌های مبتنی بر هوش مصنوعی برای تشخیص دست‌خط انسان
بعدی تفاوت‌های دو کلمه کلیدی ref و out در سی شارپ چیست؟

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
MBA آموزش و کاربرد هوش مصنوعی اهداف شغلی بازاریابی محصول کسب و کار اینترنتی
logoacademy
آکادمی چابک با برگزاری دوره‌های جامع و تخصصی در حوزه‌ی نرم‌افزار، تحلیل کسب‌وکار و همچنین مشاوره‌های تخصصی در این حوزه‌ها سعی بر آن دارد تا علاقمندان پس از گذراندن دوره‌های مربوطه بتوانند از دانش و مهارت‌ خود بهترین استفاده را کرده و وارد بازار کار شوند.
 

ارتباط با ما

  • ۰۲۱۷۷۰۱۰۷۷۱
  • info@chabokacademy.com
  • حکیمیه، بلوار بابائیان، ۱۵ متری امام حسین، بن بست شفاعت، پلاک ۱۵، طبقه ۷

دسترسی سریع

  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما
  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما

نماد‌ها و خبرنامه

۱۴۰۲© کلیه حقوق سایت نزد آکادمی چابک محفوظ است.

  • Afghanistan (+93)
  • Albania (+355)
  • Algeria (+213)
  • American Samoa (+1)
  • Andorra (+376)
  • Angola (+244)
  • Anguilla (+1)
  • Antigua (+1)
  • Argentina (+54)
  • Armenia (+374)
  • Aruba (+297)
  • Australia (+61)
  • Austria (+43)
  • Azerbaijan (+994)
  • Bahrain (+973)
  • Bangladesh (+880)
  • Barbados (+1)
  • Belarus (+375)
  • Belgium (+32)
  • Belize (+501)
  • Benin (+229)
  • Bermuda (+1)
  • Bhutan (+975)
  • Bolivia (+591)
  • Bonaire, Sint Eustatius and Saba (+599)
  • Bosnia and Herzegovina (+387)
  • Botswana (+267)
  • Brazil (+55)
  • British Indian Ocean Territory (+246)
  • British Virgin Islands (+1)
  • Brunei (+673)
  • Bulgaria (+359)
  • Burkina Faso (+226)
  • Burundi (+257)
  • Cambodia (+855)
  • Cameroon (+237)
  • Canada (+1)
  • Cape Verde (+238)
  • Cayman Islands (+1)
  • Central African Republic (+236)
  • Chad (+235)
  • Chile (+56)
  • China (+86)
  • Colombia (+57)
  • Comoros (+269)
  • Cook Islands (+682)
  • Côte d'Ivoire (+225)
  • Costa Rica (+506)
  • Croatia (+385)
  • Cuba (+53)
  • Curaçao (+599)
  • Cyprus (+357)
  • Czech Republic (+420)
  • Democratic Republic of the Congo (+243)
  • Denmark (+45)
  • Djibouti (+253)
  • Dominica (+1)
  • Dominican Republic (+1)
  • Ecuador (+593)
  • Egypt (+20)
  • El Salvador (+503)
  • Equatorial Guinea (+240)
  • Eritrea (+291)
  • Estonia (+372)
  • Ethiopia (+251)
  • Falkland Islands (+500)
  • Faroe Islands (+298)
  • Federated States of Micronesia (+691)
  • Fiji (+679)
  • Finland (+358)
  • France (+33)
  • French Guiana (+594)
  • French Polynesia (+689)
  • Gabon (+241)
  • Georgia (+995)
  • Germany (+49)
  • Ghana (+233)
  • Gibraltar (+350)
  • Greece (+30)
  • Greenland (+299)
  • Grenada (+1)
  • Guadeloupe (+590)
  • Guam (+1)
  • Guatemala (+502)
  • Guernsey (+44)
  • Guinea (+224)
  • Guinea-Bissau (+245)
  • Guyana (+592)
  • Haiti (+509)
  • Honduras (+504)
  • Hong Kong (+852)
  • Hungary (+36)
  • Iceland (+354)
  • India (+91)
  • Indonesia (+62)
  • Iran (+98)
  • Iraq (+964)
  • Ireland (+353)
  • Isle Of Man (+44)
  • Israel (+972)
  • Italy (+39)
  • Jamaica (+1)
  • Japan (+81)
  • Jersey (+44)
  • Jordan (+962)
  • Kazakhstan (+7)
  • Kenya (+254)
  • Kiribati (+686)
  • Kuwait (+965)
  • Kyrgyzstan (+996)
  • Laos (+856)
  • Latvia (+371)
  • Lebanon (+961)
  • Lesotho (+266)
  • Liberia (+231)
  • Libya (+218)
  • Liechtenstein (+423)
  • Lithuania (+370)
  • Luxembourg (+352)
  • Macau (+853)
  • Macedonia (+389)
  • Madagascar (+261)
  • Malawi (+265)
  • Malaysia (+60)
  • Maldives (+960)
  • Mali (+223)
  • Malta (+356)
  • Marshall Islands (+692)
  • Martinique (+596)
  • Mauritania (+222)
  • Mauritius (+230)
  • Mayotte (+262)
  • Mexico (+52)
  • Moldova (+373)
  • Monaco (+377)
  • Mongolia (+976)
  • Montenegro (+382)
  • Montserrat (+1)
  • Morocco (+212)
  • Mozambique (+258)
  • Myanmar (+95)
  • Namibia (+264)
  • Nauru (+674)
  • Nepal (+977)
  • Netherlands (+31)
  • New Caledonia (+687)
  • New Zealand (+64)
  • Nicaragua (+505)
  • Niger (+227)
  • Nigeria (+234)
  • Niue (+683)
  • Norfolk Island (+672)
  • North Korea (+850)
  • Northern Mariana Islands (+1)
  • Norway (+47)
  • Oman (+968)
  • Pakistan (+92)
  • Palau (+680)
  • Palestine (+970)
  • Panama (+507)
  • Papua New Guinea (+675)
  • Paraguay (+595)
  • Peru (+51)
  • Philippines (+63)
  • Poland (+48)
  • Portugal (+351)
  • Puerto Rico (+1)
  • Qatar (+974)
  • Republic of the Congo (+242)
  • Romania (+40)
  • Reunion (+262)
  • Russia (+7)
  • Rwanda (+250)
  • Saint Helena (+290)
  • Saint Kitts and Nevis (+1)
  • Saint Pierre and Miquelon (+508)
  • Saint Vincent and the Grenadines (+1)
  • Samoa (+685)
  • San Marino (+378)
  • Sao Tome and Principe (+239)
  • Saudi Arabia (+966)
  • Senegal (+221)
  • Serbia (+381)
  • Seychelles (+248)
  • Sierra Leone (+232)
  • Singapore (+65)
  • Sint Maarten (+1)
  • Slovakia (+421)
  • Slovenia (+386)
  • Solomon Islands (+677)
  • Somalia (+252)
  • South Africa (+27)
  • South Korea (+82)
  • South Sudan (+211)
  • Spain (+34)
  • Sri Lanka (+94)
  • St. Lucia (+1)
  • Sudan (+249)
  • Suriname (+597)
  • Swaziland (+268)
  • Sweden (+46)
  • Switzerland (+41)
  • Syria (+963)
  • Taiwan (+886)
  • Tajikistan (+992)
  • Tanzania (+255)
  • Thailand (+66)
  • The Bahamas (+1)
  • The Gambia (+220)
  • Timor-Leste (+670)
  • Togo (+228)
  • Tokelau (+690)
  • Tonga (+676)
  • Trinidad and Tobago (+1)
  • Tunisia (+216)
  • Turkey (+90)
  • Turkmenistan (+993)
  • Turks and Caicos Islands (+1)
  • Tuvalu (+688)
  • U.S. Virgin Islands (+1)
  • Uganda (+256)
  • Ukraine (+380)
  • United Arab Emirates (+971)
  • United Kingdom (+44)
  • United States (+1)
  • Uruguay (+598)
  • Uzbekistan (+998)
  • Vanuatu (+678)
  • Venezuela (+58)
  • Vietnam (+84)
  • Wallis and Futuna (+681)
  • Western Sahara (+212)
  • Yemen (+967)
  • Zambia (+260)
  • Zimbabwe (+263)
ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط