خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه پیاده سازی یک سیستم سلامت در PyGame

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

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

یک بازی ساده بسازید

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

pip install pygame

پس از آن، یک فایل با نام simple-game.py ایجاد کنید و با ایجاد یک بازی ساده شروع کنید که در آن بازیکن می تواند به چپ و راست حرکت کند.

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

در این حلقه بازی اصلی، هدف بازیکن جلوگیری از برخورد با دشمن خواهد بود.

import pygame
import random

# Initialize PyGame
pygame.init()

# Set up the game window
window_width, window_height = 800, 600
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Health System Demo")

# Player attributes
player_width, player_height = 50, 50
player_x, player_y = window_width // 2, window_height - player_height - 10
player_speed = 1

# Enemy attributes
enemy_width, enemy_height = 50, 50
enemy_x, enemy_y = random.randint(0, window_width - enemy_width), 0
enemy_speed = 0.3

# Game loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Move the player left or right
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 0:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] and player_x < window_width - player_width:
        player_x += player_speed

    # Move the enemy downwards
    enemy_y += enemy_speed

    # Draw game objects
    window.fill((0, 0, 0)) # Clear the screen
    pygame.draw.rect(window, (255, 0, 0),
                     (player_x, player_y,
                      player_width, player_height))
    pygame.draw.rect(window, (0, 255, 0),
                     (enemy_x, enemy_y,
                      enemy_width, enemy_height)) # Draw enemy
    pygame.display.update()

pygame.quit()

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

مطلب مرتبط:   7 اشتباه رایج که فریلنسرها هنگام راه اندازی یک وب سایت مرتکب می شوند

بازی آرکید ساده با بازیکن و شی دشمن

تعریف متغیرها و ثابت های مرتبط با سلامت

اکنون که تنظیمات اولیه بازی را دارید، متغیرها و ثابت های مربوط به سلامت بازیکن را تعریف کنید. شما می توانید از یک سیستم بهداشتی ساده استفاده کنید که در آن می توانید سلامت بازیکن را با یک مقدار عددی نشان دهید. همچنین می توانید برای حداکثر سلامت بازیکن و میزان آسیب وارد شده توسط دشمن، ثابت هایی تعریف کنید.

سلامت اولیه بازیکن را روی 100 قرار دهید، حداکثر سلامتی را 100 تعریف کنید و میزان آسیب دشمن را روی 20 قرار دهید. این مقادیر را می توان با توجه به نیازهای خاص بازی شما تنظیم کرد.

# Player health
player_health = 100
max_health = 100
enemy_damage = 20

اجرای مکانیک آسیب و درمان

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

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

علاوه بر این، اگر پخش کننده از بالای صفحه خارج شود (player_y < 0)، 10 را به سلامت او اضافه کنید و مطمئن شوید که از حداکثر سلامتی تجاوز نمی کند. این یک مکانیک شفا ایجاد می کند و موقعیت پخش کننده را به پایین صفحه بازنشانی می کند.

یک فایل جدید با نام damage-and-healing.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Inside the game loop, after updating the enemy position
# Detect collision between player and enemy
if player_x < enemy_x + enemy_width and \
           player_x + player_width > enemy_x and \
           player_y < enemy_y + enemy_height \
           and player_y + player_height > enemy_y:
   player_health -= enemy_damage
   print(player_health)

# Heal the player when they move off the screen
if player_y < 0:
   player_health += 10
   print(player_health)
   if player_health > max_health:
       player_health = max_health
       player_y = window_height - player_height - 10

در زیر خروجی است:

سقوط دشمن روی جسم بازیکن

مدیریت مرگ بازیکن و سناریوهای بازی بیش از حد

برای رسیدگی به سناریوهای مرگ و پایان بازی بازیکن، باید بررسی کنید که آیا سلامت بازیکن به صفر می رسد یا خیر. اگر چنین شد، یک پیام Game Over نمایش داده و بازی را مجدداً راه اندازی کنید.

مطلب مرتبط:   نحوه ذخیره و بارگذاری اطلاعات بازی در Arcade

یک چک اضافه کنید تا ببینید آیا سلامت بازیکن زیر صفر است یا برابر است. اگر این شرط درست است، Game Over را چاپ کنید و وضعیت سلامت و موقعیت بازیکن را بازنشانی کنید.

یک فایل جدید با نام manager-player-death.py ایجاد کنید و کد را با به روز رسانی های زیر تغییر دهید:

# After updating the player's position

# Check if player's health reaches zero
if player_health <= 0:
    print("Game Over")
    player_health = max_health
    player_x = window_width // 2
    player_y = window_height - player_height - 10

از جمله ویژگی های اضافی

برای ارتقای بیشتر سیستم سلامت، می‌توانید ویژگی‌های اضافی را اضافه کنید. در زیر یک مثال آورده شده است:

پاور آپ ها

ویژگی های پاور آپ مانند ابعاد و موقعیت آن را تعریف کنید. همچنین، مقدار سلامتی را تنظیم کنید که بازیکن هنگام برخورد با پاور آپ به دست می آورد.

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

یک فایل جدید به نام power-up.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Define power-up attributes
power_up_width, power_up_height = 30, 30
power_up_x, power_up_y = 200,200
power_up_health_value = 50

# Inside the game loop, after updating the player's position
# Detect collision between player and power-up
if player_x < power_up_x + power_up_width and\
      player_x + player_width > power_up_x \
        and player_y < power_up_y + power_up_height\
         and player_y + player_height > power_up_y:
    player_health += power_up_health_value
    if player_health > max_health:
        player_health = max_health
    power_up_x, power_up_y = 200,200

# Draw power-up object
pygame.draw.rect(window, (0, 0, 255),
                    (power_up_x, power_up_y,
                     power_up_width,
                     power_up_height))

در زیر خروجی است:

مطلب مرتبط:   چگونه یک طراح بازی ویدیویی شویم: راهنمای گام به گام

شی بازیکن با یک دشمن و یک شی قدرت بالا

برای هر ویژگی اضافی، می توانید متغیرها و ثابت های لازم را تعریف کنید و مکانیک های مربوطه را در حلقه بازی پیاده سازی کنید.

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

هنگام پیاده سازی یک سیستم سلامت در PyGame، بهترین شیوه های زیر را در نظر داشته باشید:

پیاده سازی سیستم های رویداد محور

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

تعادل ارزش های سلامتی

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

ارائه بازخورد

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

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

با نوار سلامتی بازی‌ها را جذاب‌تر کنید

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