Ето как можете да добавите нива към играта си, за да я направите по-ангажираща и приятна.

Нивата са основен аспект на повечето видео игри. Те осигуряват структура, предизвикателство и разнообразие и могат значително да подобрят изживяването на играча. PyGame, популярна библиотека на Python за разработка на игри, предоставя различни функции, с които можете лесно да създавате различни нива. Добре проектираното ниво може да плени играча, да създаде усещане за напредък и в крайна сметка да го възнагради за усилията му.

Планиране и проектиране на нива

Преди да създадете нива, важно е да ги планирате и проектирате. Нивата на планиране помагат при създаването на добре структурирана игра, която осигурява правилното ниво на трудност на играчите. За да планирате нива, трябва да имате предвид различни фактори като механиката на играта, историята и цялостната структура на играта.

Например, ако проектирате платформинг игра, трябва да помислите за разположението на платформите, враговете и препятствията. Трябва също така да вземете предвид движението на играча, като скачане и бягане, и да проектирате нивата съответно.

instagram viewer

Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.

Създаване на две прости нива

Преди да започнете, уверете се, че имате pip, инсталиран на вашата система. Използвайте тази команда, за да инсталирате pygame библиотека:

pip инсталирайте pygame

Сега създайте две прости нива с платформа и играч. Ето кода за първо ниво:

импортиране pygame

pygame.init()

# Дефинирайте константи
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
ПЛАТФОРМА_ВИСОЧИНА = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Създайте екрана
екран = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Създайте платформата
платформа = pygame. Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Създайте плейъра
играч = pygame. Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Цикъл на играта
бягане = Вярно
докато работи:
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно
елиф event.type == pygame. KEYDOWN:
ако event.key == pygame. K_НАЛЯВО:
player.move_ip(-10, 0)
елиф event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Напълнете екрана с черен цвят
screen.fill((0, 0, 0))

# Начертайте платформата
pygame.draw.rect (екран, PLATFORM_COLOR, платформа)

# Начертайте играча
pygame.draw.rect (екран, PLAYER_COLOR, играч)

# Актуализирайте екрана
pygame.display.flip()

pygame.quit()

След това създайте второто ниво, като просто промените платформата и позицията на играча. Ето кода за второто ниво:

импортиране pygame

pygame.init()

# Дефинирайте константи
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
ПЛАТФОРМА_ВИСОЧИНА = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Създайте екрана
екран = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Създайте платформата
платформа = pygame. Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Създайте плейъра
играч = pygame. Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Цикъл на играта
бягане = Вярно
докато работи:
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
бягане = Невярно
елиф event.type == pygame. KEYDOWN:
ако event.key == pygame. K_НАЛЯВО:
player.move_ip(-10, 0)
елиф event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Напълнете екрана с черен цвят
screen.fill((0, 0, 0))

# Начертайте платформата
pygame.draw.rect (екран, PLATFORM_COLOR, платформа)

# Начертайте играча
pygame.draw.rect (екран, PLAYER_COLOR, играч)

# Актуализирайте екрана
pygame.display.flip()

pygame.quit()

Този код е подобен на първо ниво, но платформата и позициите на играча са променени.

Свързване на различни нива

За да свържете различни нива, трябва да промените цикъла на играта, за да превключвате между нивата, когато играчът завърши ниво. Можете да направите това, като създадете променлива, за да следите текущото ниво и използвате условни изрази, за да превключвате между нивата. Можете също откриване на сблъсъци за проверка ако играчът е достигнал края на ниво.

Ето модифицирания цикъл на играта:

текущо_ниво = 1

# Начертайте платформата и играча въз основа на текущото ниво
ако текущо_ниво == 1:
pygame.draw.rect (екран, PLATFORM_COLOR, платформа1)
pygame.draw.rect (екран, PLAYER_COLOR, играч)
# Проверете дали играчът е стигнал до края на нивото
ако player.colliderect (платформа1) == Невярно:
текущо_ниво = 2
елиф текущо_ниво == 2:
pygame.draw.rect (екран, PLATFORM_COLOR, платформа2)
pygame.draw.rect (екран, PLAYER_COLOR, играч)
# Проверете дали играчът е стигнал до края на нивото
ако player.colliderect (платформа2) == Вярно:
бягане = Невярно

Споделяне на данните за играта между нивата

Трябва да съхраните данните за играта, за да ги споделите между нивата. За целта създайте отделен модул на Python, за да съхранявате данните за играта и да ги импортирате на всяко ниво.

Ето стъпките:

  • Създайте нов Python модул с име game_data.py.
  • Дефинирайте глобална променлива в game_data.py модул за съхраняване на позицията на играча.
  • Във всяко ниво импортирайте игра_данни модул.
  • За да извлечете позицията на играча във всяко ниво, използвайте game_data.player_pos променлива вместо създаване на нов обект на играч.
  • За да актуализирате позицията на играча, променете стойността на game_data.player_pos във всяка итерация.

Ето модифицирания код за споделяне на позицията на играча между нивата.

В game_data.py модул, добавете следния код:

player_pos = (0, 0)

Първо ниво:

импортиране pygame
импортиране игра_данни

# Създайте плейъра
играч = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Цикъл на играта
бягане = Вярно
докато работи:
# Начертайте играча
pygame.draw.rect (екран, PLAYER_COLOR, играч)

# Актуализирайте позицията на играча в модула game_data
game_data.player_pos = (player.x, player.y)

Направете игрите по-ангажиращи с нива

Добавянето на различни нива към вашата игра може да я направи по-ангажираща и приятна за играчите. Чрез свързване на нива и споделяне на данни за играта можете да създадете безпроблемно и сплотено игрово изживяване. Това може да помогне на играчите да останат потопени в света на играта и да намали вероятността от откъсване или скука.