Her er, hvordan du kan tilføje niveauer til dit spil for at gøre det mere engagerende og underholdende.

Niveauer er et væsentligt aspekt af de fleste videospil. De giver struktur, udfordring og variation og kan forbedre spillerens oplevelse markant. PyGame, et populært Python-bibliotek til spiludvikling, tilbyder forskellige funktioner, som du nemt kan oprette forskellige niveauer med. Et veldesignet niveau kan fængsle spilleren, skabe en følelse af progression og i sidste ende belønne dem for deres indsats.

Planlægning og design niveauer

Før du opretter niveauer, er det vigtigt at planlægge og designe dem. Planlægningsniveauer hjælper med at skabe et velstruktureret spil, der giver spillerne den rigtige sværhedsgrad. For at planlægge niveauer skal du overveje forskellige faktorer såsom spillets mekanik, historien og spillets overordnede struktur.

For eksempel, hvis du designer et platformspil, skal du tænke på placeringen af ​​platforme, fjenderne og forhindringerne. Du skal også overveje spillerens bevægelser, såsom at hoppe og løbe, og designe niveauerne derefter.

instagram viewer

Koden brugt i denne artikel er tilgængelig i denne GitHub-depot og er gratis for dig at bruge under MIT-licensen.

Oprettelse af to simple niveauer

Før du starter, skal du sikre dig, at du har pip installeret på dit system. Brug denne kommando til at installere pygame bibliotek:

pip installer pygame

Opret nu to simple niveauer med en platform og en spiller. Her er koden til det første niveau:

importere pygame

pygame.init()

# Definer konstanter
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)

# Opret skærmen
skærm = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Opret platformen
platform = pygame. Rekt(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Opret afspilleren
spiller = pygame. Rekt(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spilløkke
kører = Rigtigt
mens kører:
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
kører = Falsk
elif event.type == pygame. NASTATUR:
hvis event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Fyld skærmen med sort farve
screen.fill((0, 0, 0))

# Tegn platformen
pygame.draw.rect (skærm, PLATFORM_COLOR, platform)

# Tegn afspilleren
pygame.draw.rect (skærm, PLAYER_COLOR, afspiller)

# Opdater skærmen
pygame.display.flip()

pygame.quit()

Derefter skal du oprette det andet niveau ved blot at ændre platformen og spillerens position. Her er koden til andet niveau:

importere pygame

pygame.init()

# Definer konstanter
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)

# Opret skærmen
skærm = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Opret platformen
platform = pygame. Rekt(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Opret afspilleren
spiller = pygame. Rekt(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spilløkke
kører = Rigtigt
mens kører:
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
kører = Falsk
elif event.type == pygame. NASTATUR:
hvis event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# Fyld skærmen med sort farve
screen.fill((0, 0, 0))

# Tegn platformen
pygame.draw.rect (skærm, PLATFORM_COLOR, platform)

# Tegn afspilleren
pygame.draw.rect (skærm, PLAYER_COLOR, afspiller)

# Opdater skærmen
pygame.display.flip()

pygame.quit()

Denne kode ligner det første niveau, men platformen og spillerens positioner ændres.

Forbindelse af forskellige niveauer

For at forbinde forskellige niveauer skal du ændre spilløkken for at skifte mellem niveauer, når spilleren fuldfører et niveau. Du kan gøre dette ved at oprette en variabel for at holde styr på det aktuelle niveau og bruge betingede udsagn til at skifte mellem niveauer. Du kan også registrere kollisioner for at kontrollere hvis spilleren har nået slutningen af ​​et niveau.

Her er den ændrede spilløkke:

nuværende_niveau = 1

# Tegn platformen og spilleren baseret på det aktuelle niveau
hvis nuværende_niveau == 1:
pygame.draw.rect (skærm, PLATFORM_COLOR, platform1)
pygame.draw.rect (skærm, PLAYER_COLOR, afspiller)
# Tjek om spilleren har nået slutningen af ​​niveauet
hvis player.colliderect (platform1) == Falsk:
nuværende_niveau = 2
elif nuværende_niveau == 2:
pygame.draw.rect (skærm, PLATFORM_COLOR, platform2)
pygame.draw.rect (skærm, PLAYER_COLOR, afspiller)
# Tjek om spilleren har nået slutningen af ​​niveauet
hvis player.colliderect (platform2) == Rigtigt:
kører = Falsk

Deling af spildata mellem niveauer

Du skal gemme spildataene for at dele dem mellem niveauerne. Til det skal du oprette et separat Python-modul til at gemme spildataene og importere dem til hvert niveau.

Her er trinene:

  • Opret et nyt Python-modul med navnet game_data.py.
  • Definer en global variabel i game_data.py modul til at gemme spillerens position.
  • I hvert niveau skal du importere spildata modul.
  • For at hente spillerens position i hvert niveau skal du bruge game_data.player_pos variabel i stedet for at oprette et nyt spillerobjekt.
  • For at opdatere spillerens position skal du ændre værdien af game_data.player_pos i hver iteration.

Her er den ændrede kode til at dele spillerens position mellem niveauerne.

I den game_data.py modul skal du tilføje følgende kode:

player_pos = (0, 0)

Første niveau:

importere pygame
importere spildata

# Opret afspilleren
spiller = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Spilløkke
kører = Rigtigt
mens kører:
# Tegn afspilleren
pygame.draw.rect (skærm, PLAYER_COLOR, afspiller)

# Opdater spillerens position i game_data-modulet
game_data.player_pos = (player.x, player.y)

Gør spil mere engagerende med niveauer

Tilføjelse af forskellige niveauer til dit spil kan gøre det mere engagerende og sjovt for spillerne. Ved at forbinde niveauer og dele spildata kan du skabe en problemfri og sammenhængende spiloplevelse. Dette kan hjælpe spillere med at blive fordybet i spilverdenen og reducere sandsynligheden for frigørelse eller kedsomhed.