Slik kan du legge til nivåer i spillet ditt for å gjøre det mer engasjerende og morsomt.

Nivåer er et viktig aspekt ved de fleste videospill. De gir struktur, utfordring og variasjon, og kan forbedre spillerens opplevelse betydelig. PyGame, et populært Python-bibliotek for spillutvikling, tilbyr ulike funksjoner som du enkelt kan lage ulike nivåer med. Et godt designet nivå kan fengsle spilleren, skape en følelse av progresjon og til slutt belønne dem for innsatsen.

Planlegging og designnivåer

Før du oppretter nivåer, er det viktig å planlegge og designe dem. Planleggingsnivåer hjelper til med å skape et godt strukturert spill som gir spillerne rett vanskelighetsgrad. For å planlegge nivåer, må du vurdere ulike faktorer som spillets mekanikk, historien og spillets generelle struktur.

For eksempel, hvis du designer et plattformspill, må du tenke på plasseringen av plattformene, fiendene og hindringene. Du må også vurdere spillerens bevegelser, for eksempel hopping og løping, og designe nivåene deretter.

Koden som brukes i denne artikkelen er tilgjengelig i denne GitHub-depot og er gratis for deg å bruke under MIT-lisensen.

Lage to enkle nivåer

Før du starter, sørg for at du har pip installert på systemet ditt. Bruk denne kommandoen til å installere pygame bibliotek:

pip installer pygame

Lag nå to enkle nivåer med en plattform og en spiller. Her er koden for første nivå:

import 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)

# Lag skjermen
skjerm = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Lag plattformen
plattform = pygame. Rekt(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Lag spilleren
spiller = pygame. Rekt(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spillløkke
kjører = ekte
samtidig som løping:
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
kjø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)

# Fyll skjermen med svart farge
screen.fill((0, 0, 0))

# Tegn plattformen
pygame.draw.rect (skjerm, PLATFORM_COLOR, plattform)

# Tegn spilleren
pygame.draw.rect (skjerm, PLAYER_COLOR, spiller)

# Oppdater skjermen
pygame.display.flip()

pygame.quit()

Deretter oppretter du det andre nivået ved ganske enkelt å endre plattformen og spillerens posisjon. Her er koden for det andre nivået:

import 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)

# Lag skjermen
skjerm = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Lag plattformen
plattform = pygame. Rekt(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Lag spilleren
spiller = pygame. Rekt(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Spillløkke
kjører = ekte
samtidig som løping:
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
kjø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)

# Fyll skjermen med svart farge
screen.fill((0, 0, 0))

# Tegn plattformen
pygame.draw.rect (skjerm, PLATFORM_COLOR, plattform)

# Tegn spilleren
pygame.draw.rect (skjerm, PLAYER_COLOR, spiller)

# Oppdater skjermen
pygame.display.flip()

pygame.quit()

Denne koden ligner på det første nivået, men plattformen og spillerens posisjoner endres.

Koble sammen ulike nivåer

For å koble til forskjellige nivåer, må du endre spillløkken for å bytte mellom nivåer når spilleren fullfører et nivå. Du kan gjøre dette ved å lage en variabel for å holde styr på gjeldende nivå og bruke betingede utsagn for å bytte mellom nivåer. Du kan også oppdage kollisjoner for å sjekke hvis spilleren har nådd slutten av et nivå.

Her er den modifiserte spillløkken:

gjeldende_nivå = 1

# Tegn plattformen og spilleren basert på gjeldende nivå
hvis gjeldende_nivå == 1:
pygame.draw.rect (skjerm, PLATFORM_COLOR, plattform1)
pygame.draw.rect (skjerm, PLAYER_COLOR, spiller)
# Sjekk om spilleren har nådd slutten av nivået
hvis player.colliderect (plattform1) == Falsk:
gjeldende_nivå = 2
elif gjeldende_nivå == 2:
pygame.draw.rect (skjerm, PLATFORM_COLOR, plattform2)
pygame.draw.rect (skjerm, PLAYER_COLOR, spiller)
# Sjekk om spilleren har nådd slutten av nivået
hvis player.colliderect (plattform2) == ekte:
kjører = Falsk

Deling av spilldata mellom nivåer

Du må lagre spilldataene for å dele dem mellom nivåene. For det, lag en egen Python-modul for å lagre spilldataene og importere dem til hvert nivå.

Her er trinnene:

  • Lag en ny Python-modul med navnet game_data.py.
  • Definer en global variabel i game_data.py modul for å lagre spillerens posisjon.
  • I hvert nivå importerer du spilldata modul.
  • For å hente spillerens posisjon på hvert nivå, bruk game_data.player_pos variabel i stedet for å lage et nytt spillerobjekt.
  • For å oppdatere spillerens posisjon, endre verdien på game_data.player_pos i hver iterasjon.

Her er den modifiserte koden for å dele spillerens posisjon mellom nivåene.

I game_data.py modul, legg til følgende kode:

player_pos = (0, 0)

Første nivå:

import pygame
import spilldata

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

# Spillløkke
kjører = ekte
samtidig som løping:
# Tegn spilleren
pygame.draw.rect (skjerm, PLAYER_COLOR, spiller)

# Oppdater spillerens posisjon i game_data-modulen
game_data.player_pos = (player.x, player.y)

Gjør spill mer engasjerende med nivåer

Å legge til forskjellige nivåer i spillet ditt kan gjøre det mer engasjerende og morsommere for spillere. Ved å koble til nivåer og dele spilldata kan du skape en sømløs og sammenhengende spillopplevelse. Dette kan hjelpe spillere med å holde seg fordypet i spillverdenen og redusere sannsynligheten for løsrivelse eller kjedsomhet.