Oto, jak możesz dodawać poziomy do swojej gry, aby uczynić ją bardziej wciągającą i przyjemną.

Poziomy są istotnym aspektem większości gier wideo. Zapewniają strukturę, wyzwanie i różnorodność oraz mogą znacznie poprawić wrażenia gracza. PyGame, popularna biblioteka Pythona do tworzenia gier, zapewnia różne funkcje, dzięki którym można łatwo tworzyć różne poziomy. Dobrze zaprojektowany poziom może zniewolić gracza, stworzyć poczucie postępu i ostatecznie nagrodzić go za wysiłek.

Poziomy planowania i projektowania

Przed utworzeniem poziomów konieczne jest ich zaplanowanie i zaprojektowanie. Poziomy planowania pomagają w stworzeniu dobrze zorganizowanej gry, która zapewnia graczom odpowiedni poziom trudności. Aby zaplanować poziomy, należy wziąć pod uwagę różne czynniki, takie jak mechanika gry, fabuła i ogólna struktura gry.

Na przykład, jeśli projektujesz grę platformową, musisz pomyśleć o rozmieszczeniu platform, wrogów i przeszkód. Musisz także wziąć pod uwagę ruchy gracza, takie jak skakanie i bieganie, i odpowiednio zaprojektować poziomy.

instagram viewer

Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.

Tworzenie dwóch prostych poziomów

Zanim zaczniesz, upewnij się, że masz pip zainstalowany w twoim systemie. Użyj tego polecenia, aby zainstalować pygame biblioteka:

pip zainstaluj pygame

Teraz utwórz dwa proste poziomy z platformą i graczem. Oto kod pierwszego poziomu:

import pygame

pygame.init()

# Zdefiniuj stałe
SZEROKOŚĆ_EKRANU = 800
WYSOKOŚĆ_EKRANU = 600
PLATFORMA_SZEROKOŚĆ = 100
WYSOKOŚĆ_PLATFORMY = 20
PLAYER_WIDTH = 50
WYSOKOŚĆ_GRACZA = 50
PLATFORMA_KOLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Utwórz ekran
ekran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Utwórz platformę
platforma = pygame. prostokąt(350, 500, PLATFORMA_WIDTH, PLATFORMA_HEIGHT)

# Utwórz odtwarzacz
gracz = pygame. prostokąt(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Pętla gry
bieganie = PRAWDA
chwila działanie:
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
bieganie = FAŁSZ
Elif event.type == pygame. KLAWIATURA:
Jeśli event.key == pygame. K_LEWO:
gracz.move_ip(-10, 0)
Elif event.key == pygame. K_PRAWO:
gracz.move_ip(10, 0)

# Wypełnij ekran czarnym kolorem
ekran.wypełnienie((0, 0, 0))

# Narysuj platformę
pygame.draw.rect (ekran, PLATFORM_COLOR, platforma)

# Narysuj gracza
pygame.draw.rect (ekran, PLAYER_COLOR, gracz)

# Zaktualizuj ekran
pygame.display.flip()

pygame.quit()

Następnie utwórz drugi poziom, po prostu zmieniając platformę i pozycję gracza. Oto kod drugiego poziomu:

import pygame

pygame.init()

# Zdefiniuj stałe
SZEROKOŚĆ_EKRANU = 800
WYSOKOŚĆ_EKRANU = 600
PLATFORMA_SZEROKOŚĆ = 150
WYSOKOŚĆ_PLATFORMY = 20
PLAYER_WIDTH = 50
WYSOKOŚĆ_GRACZA = 50
PLATFORMA_KOLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# Utwórz ekran
ekran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Utwórz platformę
platforma = pygame. prostokąt(200, 500, PLATFORMA_WIDTH, PLATFORMA_HEIGHT)

# Utwórz odtwarzacz
gracz = pygame. prostokąt(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Pętla gry
bieganie = PRAWDA
chwila działanie:
Do wydarzenie W pygame.event.get():
Jeśli event.type == pygame. ZREZYGNOWAĆ:
bieganie = FAŁSZ
Elif event.type == pygame. KLAWIATURA:
Jeśli event.key == pygame. K_LEWO:
gracz.move_ip(-10, 0)
Elif event.key == pygame. K_PRAWO:
gracz.move_ip(10, 0)

# Wypełnij ekran czarnym kolorem
ekran.wypełnienie((0, 0, 0))

# Narysuj platformę
pygame.draw.rect (ekran, PLATFORM_COLOR, platforma)

# Narysuj gracza
pygame.draw.rect (ekran, PLAYER_COLOR, gracz)

# Zaktualizuj ekran
pygame.display.flip()

pygame.quit()

Ten kod jest podobny do pierwszego poziomu, ale platforma i pozycje gracza są zmienione.

Łączenie różnych poziomów

Aby połączyć różne poziomy, musisz zmodyfikować pętlę gry, aby przełączać się między poziomami, gdy gracz ukończy poziom. Możesz to zrobić, tworząc zmienną do śledzenia bieżącego poziomu i używając instrukcji warunkowych do przełączania między poziomami. Możesz również wykryć kolizje do sprawdzenia jeśli gracz osiągnął koniec poziomu.

Oto zmodyfikowana pętla gry:

obecny_poziom = 1

# Narysuj platformę i gracza na podstawie aktualnego poziomu
Jeśli aktualny_poziom == 1:
pygame.draw.rect (ekran, PLATFORM_COLOR, platforma1)
pygame.draw.rect (ekran, PLAYER_COLOR, gracz)
# Sprawdź, czy gracz osiągnął koniec poziomu
Jeśli player.colliderect (platforma1) == FAŁSZ:
obecny_poziom = 2
Elif aktualny_poziom == 2:
pygame.draw.rect (ekran, PLATFORM_COLOR, platforma2)
pygame.draw.rect (ekran, PLAYER_COLOR, gracz)
# Sprawdź, czy gracz osiągnął koniec poziomu
Jeśli player.colliderect (platforma2) == PRAWDA:
bieganie = FAŁSZ

Udostępnianie danych gry między poziomami

Musisz przechowywać dane gry, aby udostępniać je między poziomami. W tym celu utwórz osobny moduł Pythona do przechowywania danych gry i importuj go do każdego poziomu.

Oto kroki:

  • Utwórz nowy moduł Pythona o nazwie game_data.py.
  • Zdefiniuj zmienną globalną w pliku game_data.py moduł do przechowywania pozycji gracza.
  • Na każdym poziomie zaimportuj plik dane gry moduł.
  • Aby pobrać pozycję gracza na każdym poziomie, użyj gra_data.gracz_pozycja zmienną zamiast tworzyć nowy obiekt odtwarzacza.
  • Aby zaktualizować pozycję gracza, zmodyfikuj wartość gra_data.gracz_pozycja w każdej iteracji.

Oto zmodyfikowany kod udostępniający pozycję gracza między poziomami.

w game_data.py module dodaj następujący kod:

pozycja_gracza = (0, 0)

Pierwszy poziom:

import pygame
import dane gry

# Utwórz odtwarzacz
gracz = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Pętla gry
bieganie = PRAWDA
chwila działanie:
# Narysuj gracza
pygame.draw.rect (ekran, PLAYER_COLOR, gracz)

# Zaktualizuj pozycję gracza w module game_data
game_data.player_pos = (gracz.x, gracz.y)

Spraw, by gry były bardziej wciągające dzięki poziomom

Dodanie różnych poziomów do gry może uczynić ją bardziej wciągającą i przyjemniejszą dla graczy. Łącząc poziomy i udostępniając dane gry, możesz stworzyć płynną i spójną rozgrywkę. Może to pomóc graczom pozostać zanurzonym w świecie gry i zmniejszyć prawdopodobieństwo wycofania się lub znudzenia.