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

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

نحوه طراحی و ایجاد سطوح در PyGame

در اینجا نحوه اضافه کردن سطوح به بازی خود آورده شده است تا آن را جذاب تر و لذت بخش تر کنید.

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

سطوح برنامه ریزی و طراحی

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

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

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

ایجاد دو سطح ساده

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

pip install pygame

اکنون، دو سطح ساده با یک پلتفرم و یک بازیکن ایجاد کنید. این کد برای سطح اول است:

import pygame

pygame.init()

# Define constants
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Create the screen
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Create the platform
platform = pygame.Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Create the player
player = pygame.Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Game loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.move_ip(-10, 0)
            elif event.key == pygame.K_RIGHT:
                player.move_ip(10, 0)

    # Fill the screen with black color
    screen.fill((0, 0, 0))

    # Draw the platform
    pygame.draw.rect(screen, PLATFORM_COLOR, platform)

    # Draw the player
    pygame.draw.rect(screen, PLAYER_COLOR, player)

    # Update the screen
    pygame.display.flip()

pygame.quit()

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

import pygame

pygame.init()

# Define constants
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Create the screen
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Create the platform
platform = pygame.Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Create the player
player = pygame.Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Game loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.move_ip(-10, 0)
            elif event.key == pygame.K_RIGHT:
                player.move_ip(10, 0)

    # Fill the screen with black color
    screen.fill((0, 0, 0))

    # Draw the platform
    pygame.draw.rect(screen, PLATFORM_COLOR, platform)

    # Draw the player
    pygame.draw.rect(screen, PLAYER_COLOR, player)

    # Update the screen
    pygame.display.flip()

pygame.quit()

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

مطلب مرتبط:   چرا نباید کدنویسی با Codecademy را یاد بگیرید؟

اتصال سطوح مختلف

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

در اینجا حلقه بازی تغییر یافته است:

current_level = 1

# Draw the platform and the player based on the current level
if current_level == 1:
    pygame.draw.rect(screen, PLATFORM_COLOR, platform1)
    pygame.draw.rect(screen, PLAYER_COLOR, player)
    # Check if the player has reached the end of the level
    if player.colliderect(platform1) == False:
        current_level = 2
elif current_level == 2:
    pygame.draw.rect(screen, PLATFORM_COLOR, platform2)
    pygame.draw.rect(screen, PLAYER_COLOR, player)
    # Check if the player has reached the end of the level
    if player.colliderect(platform2) == True:
        running = False

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

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

در اینجا مراحل انجام می شود:

  • یک ماژول جدید پایتون به نام game_data.py ایجاد کنید.
  • یک متغیر سراسری در ماژول game_data.py برای ذخیره موقعیت بازیکن تعریف کنید.
  • در هر سطح، ماژول game_data را وارد کنید.
  • برای بازیابی موقعیت بازیکن در هر سطح، به جای ایجاد یک شی بازیکن جدید، از متغیر game_data.player_pos استفاده کنید.
  • برای به روز رسانی موقعیت بازیکن، مقدار game_data.player_pos را در هر تکرار تغییر دهید.
مطلب مرتبط:   ساختار if __name__ == "__main__" در پایتون چه می کند؟

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

در ماژول game_data.py کد زیر را اضافه کنید:

player_pos = (0, 0)

سطح اول:

import pygame
import game_data


# Create the player
player = pygame.Rect(game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Game loop
running = True
while running:
    # Draw the player
    pygame.draw.rect(screen, PLAYER_COLOR, player)

    # Update the player's position in the game_data module
    game_data.player_pos = (player.x, player.y)

بازی ها را با سطوح جذاب تر کنید

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