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

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

نحوه ایجاد پاور آپ و کلکسیون در Pygame

پروژه های Pygame خود را با ادغام پاور آپ ها و کلکسیون ها جالب تر کنید.

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

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

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

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

pip install pygame

با راه اندازی یک بازی ساده شروع کنید که در آن بازیکن می تواند به چپ و راست حرکت کند و در عین حال از دشمن دوری کند.

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

این به عنوان پایه ای برای اضافه کردن قدرت ها و کلکسیون ها عمل می کند. در اینجا یک نمونه کد کد آمده است:

import pygame
import random

# Initialize Pygame
pygame.init()

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

# Set up player
player_width = 50
player_height = 50
player_x = (window_width - player_width) // 2
player_y = window_height - player_height - 10
player_speed = 5

# Set up enemy
enemy_width = 50
enemy_height = 50
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = 50
enemy_speed = 3

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

    # Player movement
    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

    # Enemy movement
    enemy_y += enemy_speed
    if enemy_y > window_height:
        enemy_x = random.randint(0, window_width - enemy_width)
        enemy_y = 0

    # Collision detection
    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):
        running = False

    # Clear the screen
    window.fill((0, 0, 0))

    player_pos = (player_x, player_y,
                  player_width, player_height)
    enemy_pos = (enemy_x, enemy_y,
                  enemy_width, enemy_height)

    # Draw player
    pygame.draw.rect(window, (255, 255, 255), player_pos)

    # Draw enemy
    pygame.draw.rect(window, (255, 0, 0), enemy_pos)

    # Update the display
    pygame.display.update()

# Quit the game
pygame.quit()

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

مطلب مرتبط:   درک کم عمق و کپی عمیق در پایتون

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

کلکسیونی ایجاد کنید

برای ایجاد کلکسیون، یک شی اضافه کنید که با برخورد با بازیکن، ناپدید می شود و 10 امتیاز به امتیاز اضافه می کند. برای این کار باید برخورد بین بازیکن و کلکسیون ها را بررسی کنید. در اینجا یک نسخه به روز شده از کد است که شامل مجموعه ها می شود. یک فایل جدید به نام collectibles.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Set up collectible
collectible_width = 30
collectible_height = 30
collectible_x = random.randint(0, window_width - collectible_width)
collectible_y = 50

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

# ...

# Collision detection with collectible
if (player_x < collectible_x + collectible_width) and \
                        (player_x + player_width > collectible_x) and \
                        (player_y < collectible_y + collectible_height) and \
                        (player_y + player_height > collectible_y):
        collectible_x = random.randint(0, window_width - collectible_width)
        collectible_y = 50
        score += 10
# ...

collectible_pos = (collectible_x, collectible_y)
# Draw collectible
pygame.draw.circle(window, (0, 255, 0), collectible_pos, collectible_width)

# Draw score
score_text = font.render("Score: " + str(score), True, (255, 255, 255))
window.blit(score_text, (10, 10))

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

بازی pygame با شی کلکسیونی، دشمن و بازیکن

ایجاد پاور آپ

حال می توانید با منطق زیر پاور آپ ها را به بازی خود معرفی کنید. هنگامی که بازیکن با یک جسم روشن کننده برخورد می کند، قدرت بالا ناپدید می شود. اگر بازیکن در حالی که قدرت بالا فعال است با دشمن برخورد کند، دشمن از بین خواهد رفت. یک فایل جدید به نام powerups.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Set up power-up
powerup_width = 40
powerup_height = 40
powerup_x = random.randint(0, window_width - powerup_width)
powerup_y = 50
shield_active = False
shield_timer = 0

# ...

# Collision detection with power-up
collision_powerup = (player_x < powerup_x + powerup_width) and \
                    (player_x + player_width > powerup_x) and \
                    (player_y < powerup_y + powerup_height) and \
                    (player_y + player_height > powerup_y)

if collision_powerup:
    powerup_x = random.randint(0, window_width - powerup_width)
    powerup_y = 50
    shield_active = True
    shield_timer = pygame.time.get_ticks()

# ...

# Check shield timer
if shield_active:
    current_time = pygame.time.get_ticks()
    if current_time - shield_timer > 5000:
        shield_active = False

# ...

# Define the vertices of the triangle
x1 = powerup_x + powerup_width / 2
y1 = powerup_y
x2 = powerup_x
y2 = powerup_y + powerup_height
x3 = powerup_x + powerup_width
y3 = powerup_y + powerup_height

# Draw the triangle
pygame.draw.polygon(window, (255, 255, 0), [(x1, y1), (x2, y2), (x3, y3)])

# ...

# Collision detection with shield active
collision_shield = shield_active and \
                   (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)

if collision_shield:
    enemy_x = random.randint(0, window_width - enemy_width)
    enemy_y = 0

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

مطلب مرتبط:   4 بهترین اپلیکیشن موبایل برای طرفداران Assassin’s Creed

بازی pygame با پاور آپ، کلکسیونی، دشمن و شی بازیکن

تنظیم تایمر برای پاور آپ ها

برای ناپدید شدن پاور پس از مدت زمان معین و بازپخش مجدد در یک مکان تصادفی، می توانید تایمرها را معرفی کنید. یک فایل جدید به نام timer.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Set up timer for power-up respawn
powerup_respawn_timer = 0

# Check power-up timer
if not shield_active:
    current_time = pygame.time.get_ticks()
    if current_time - powerup_respawn_timer > 3000:
        powerup_x = random.randint(0, window_width - powerup_width)
        powerup_y = 50
        powerup_respawn_timer = pygame.time.get_ticks()

تجسم تایمر پاور

برای ارائه یک نمایش بصری از تایمر روشن شدن برق، می توانید یک شی مستطیلی شکل بکشید که به تدریج با گذشت زمان از بین می رود. یک فایل جدید به نام bar.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

# Set up power-up bar
bar_width = 100
bar_height = 10
bar_x = window_width - bar_width - 10
bar_y = 10

# ...

# Calculate power-up timer progress
if shield_active:
   current_time = pygame.time.get_ticks()
   elapsed_time = current_time - shield_timer
   timer_progress = (5000 - elapsed_time) / 5000
   # Draw power-up bar
   bar_rect = pygame.Rect(bar_x, bar_y, bar_width * timer_progress, bar_height)
   pygame.draw.rect(window, (0, 255, 255), bar_rect)

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

نوار تایمر در pygame با بازیکن، دشمن، powerup و شی کلکسیونی

بهترین روش ها برای افزودن پاور آپ ها و کلکسیون ها

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

تمایز بصری

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

تعادل و چالش

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

مطلب مرتبط:   خطای «فهرست فهرست خارج از محدوده» پایتون به چه معناست؟

بازخورد بازیکن را در نظر بگیرید و نرخ تخم ریزی را به دقت تنظیم کنید تا تجربه ای جذاب و رضایت بخش ایجاد کنید.

بازخورد و پاداش

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

پاداش دادن به بازیکنان با امتیاز، زندگی اضافی، یا باز کردن توانایی‌های ویژه، هیجان بیشتری را به بازیکنان می‌افزاید و بازیکنان را تشویق می‌کند تا فعالانه به دنبال این عناصر باشند.

تایمرها و مدت زمان

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

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

تست و تکرار کنید

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

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

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

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

با طراحی و اجرای دقیق این ویژگی‌ها، می‌توانید بازی‌هایی ایجاد کنید که برای بازیکنان جذاب‌تر، چالش‌برانگیزتر و لذت‌بخش‌تر باشند.