Iată cum poți adăuga niveluri jocului tău pentru a-l face mai captivant și mai plăcut.

Nivelurile sunt un aspect esențial al majorității jocurilor video. Ele oferă structură, provocare și varietate și pot îmbunătăți semnificativ experiența jucătorului. PyGame, o bibliotecă populară Python pentru dezvoltarea jocurilor, oferă diverse caracteristici cu care puteți crea cu ușurință diferite niveluri. Un nivel bine conceput poate captiva jucătorul, poate crea un sentiment de progres și, în cele din urmă, îl poate recompensa pentru eforturile depuse.

Niveluri de planificare și proiectare

Înainte de a crea niveluri, este esențial să le planificați și să le proiectați. Nivelurile de planificare ajută la crearea unui joc bine structurat, care oferă jucătorilor nivelul potrivit de dificultate. Pentru a planifica nivelurile, trebuie să luați în considerare diverși factori, cum ar fi mecanica jocului, povestea și structura generală a jocului.

De exemplu, dacă proiectați un joc platformer, trebuie să vă gândiți la amplasarea platformelor, la inamici și la obstacole. De asemenea, trebuie să luați în considerare mișcarea jucătorului, cum ar fi săriturile și alergarea, și să proiectați nivelurile în consecință.

instagram viewer

Codul folosit în acest articol este disponibil în acest articol Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.

Crearea a două niveluri simple

Înainte de a începe, asigurați-vă că aveți pip instalat pe sistemul dumneavoastră. Utilizați această comandă pentru a instala pygame bibliotecă:

pip install pygame

Acum, creați două niveluri simple cu o platformă și un jucător. Iată codul pentru primul nivel:

import pygame

pygame.init()

# Definiți constante
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)

# Creați ecranul
ecran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Creați platforma
platform = pygame. Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Creați playerul
player = pygame. Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Buclă de joc
alergare = Adevărat
in timp ce alergare:
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals
elif event.type == pygame. TASTA ÎN JOS:
dacă event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_DREPTA:
player.move_ip(10, 0)

# Umpleți ecranul cu culoarea neagră
screen.fill((0, 0, 0))

# Desenați platforma
pygame.draw.rect (ecran, PLATFORM_COLOR, platformă)

# Desenați jucătorul
pygame.draw.rect (ecran, PLAYER_COLOR, jucător)

# Actualizați ecranul
pygame.display.flip()

pygame.quit()

După aceea, creați al doilea nivel prin simpla schimbare a platformei și a poziția jucătorului. Iată codul pentru al doilea nivel:

import pygame

pygame.init()

# Definiți constante
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)

# Creați ecranul
ecran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Creați platforma
platform = pygame. Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Creați playerul
player = pygame. Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Buclă de joc
alergare = Adevărat
in timp ce alergare:
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
alergare = Fals
elif event.type == pygame. TASTA ÎN JOS:
dacă event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_DREPTA:
player.move_ip(10, 0)

# Umpleți ecranul cu culoarea neagră
screen.fill((0, 0, 0))

# Desenați platforma
pygame.draw.rect (ecran, PLATFORM_COLOR, platformă)

# Desenați jucătorul
pygame.draw.rect (ecran, PLAYER_COLOR, jucător)

# Actualizați ecranul
pygame.display.flip()

pygame.quit()

Acest cod este similar cu primul nivel, dar platforma și pozițiile jucătorului sunt modificate.

Conectarea diferitelor niveluri

Pentru a conecta diferite niveluri, trebuie să modificați bucla de joc pentru a comuta între niveluri atunci când jucătorul finalizează un nivel. Puteți face acest lucru creând o variabilă pentru a ține evidența nivelului curent și folosind instrucțiuni condiționale pentru a comuta între niveluri. Poti de asemenea detecta coliziunile pentru a verifica dacă jucătorul a ajuns la sfârșitul unui nivel.

Iată bucla de joc modificată:

nivel_actual = 1

# Desenați platforma și jucătorul pe baza nivelului actual
dacă nivelul_actual == 1:
pygame.draw.rect (ecran, PLATFORM_COLOR, platform1)
pygame.draw.rect (ecran, PLAYER_COLOR, jucător)
# Verificați dacă jucătorul a ajuns la sfârșitul nivelului
dacă player.colliderect (platform1) == Fals:
nivel_actual = 2
elif nivelul_actual == 2:
pygame.draw.rect (ecran, PLATFORM_COLOR, platform2)
pygame.draw.rect (ecran, PLAYER_COLOR, jucător)
# Verificați dacă jucătorul a ajuns la sfârșitul nivelului
dacă player.colliderect (platform2) == Adevărat:
alergare = Fals

Partajarea datelor de joc între niveluri

Trebuie să stocați datele jocului pentru a le partaja între niveluri. Pentru aceasta, creați un modul Python separat pentru a stoca datele jocului și pentru a le importa la fiecare nivel.

Iată pașii:

  • Creați un nou modul Python numit game_data.py.
  • Definiți o variabilă globală în game_data.py modul pentru a stoca poziția jucătorului.
  • În fiecare nivel, importați game_data modul.
  • Pentru a recupera poziția jucătorului în fiecare nivel, utilizați game_data.player_pos variabilă în loc să creeze un nou obiect player.
  • Pentru a actualiza poziția jucătorului, modificați valoarea lui game_data.player_pos în fiecare iterație.

Iată codul modificat pentru a partaja poziția jucătorului între niveluri.

În game_data.py modul, adăugați următorul cod:

player_pos = (0, 0)

Primul nivel:

import pygame
import game_data

# Creați playerul
player = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Buclă de joc
alergare = Adevărat
in timp ce alergare:
# Desenați jucătorul
pygame.draw.rect (ecran, PLAYER_COLOR, jucător)

# Actualizați poziția jucătorului în modulul game_data
game_data.player_pos = (player.x, player.y)

Faceți jocurile mai captivante cu niveluri

Adăugarea de niveluri diferite la jocul tău îl poate face mai captivant și mai plăcut pentru jucători. Prin conectarea nivelurilor și partajarea datelor de joc, puteți crea o experiență de joc perfectă și coerentă. Acest lucru îi poate ajuta pe jucători să rămână cufundați în lumea jocului și să reducă probabilitatea dezactivarii sau plictiselii.