Evo, kako lahko svoji igri dodate ravni, da bo bolj privlačna in prijetna.

Ravni so bistveni vidik večine video iger. Zagotavljajo strukturo, izziv in raznolikost ter lahko bistveno izboljšajo igralčevo izkušnjo. PyGame, priljubljena knjižnica Python za razvoj iger, ponuja različne funkcije, s katerimi lahko preprosto ustvarite različne ravni. Dobro zasnovan nivo lahko očara igralca, ustvari občutek napredovanja in ga na koncu nagradi za njihov trud.

Ravni načrtovanja in oblikovanja

Preden ustvarite ravni, jih morate načrtovati in oblikovati. Ravni načrtovanja pomagajo ustvariti dobro strukturirano igro, ki igralcem zagotavlja pravo stopnjo težavnosti. Če želite načrtovati ravni, morate upoštevati različne dejavnike, kot so mehanika igre, zgodba in celotna struktura igre.

Na primer, če načrtujete platformsko igro, morate razmisliti o postavitvi platform, sovražnikih in ovirah. Upoštevati morate tudi igralčevo gibanje, kot sta skakanje in tek, in ustrezno oblikovati ravni.

Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.

Ustvarjanje dveh preprostih ravni

Preden začnete, se prepričajte, da imate pip nameščen v vašem sistemu. S tem ukazom namestite pygame knjižnica:

pip namestite pygame

Zdaj ustvarite dve preprosti ravni s platformo in igralcem. Tukaj je koda za prvo raven:

uvoz pygame

pygame.init()

# Definirajte konstante
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)

# Ustvarite zaslon
zaslon = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Ustvarite platformo
platforma = pygame. Rect(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Ustvarite predvajalnik
igralec = pygame. Rect(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Igralna zanka
tek = Prav
medtem teče:
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False
elif event.type == pygame. KEYDOWN:
če event.key == pygame. K_LEVO:
player.move_ip(-10, 0)
elif event.key == pygame. K_DESNO:
player.move_ip(10, 0)

# Napolnite zaslon s črno barvo
screen.fill((0, 0, 0))

# Nariši platformo
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma)

# Narišite igralca
pygame.draw.rect (zaslon, PLAYER_COLOR, igralec)

# Posodobite zaslon
pygame.display.flip()

pygame.quit()

Nato ustvarite drugo raven tako, da preprosto spremenite platformo in položaj igralca. Tukaj je koda za drugo raven:

uvoz pygame

pygame.init()

# Definirajte konstante
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)

# Ustvarite zaslon
zaslon = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Ustvarite platformo
platforma = pygame. Rect(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Ustvarite predvajalnik
igralec = pygame. Rect(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Igralna zanka
tek = Prav
medtem teče:
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
tek = False
elif event.type == pygame. KEYDOWN:
če event.key == pygame. K_LEVO:
player.move_ip(-10, 0)
elif event.key == pygame. K_DESNO:
player.move_ip(10, 0)

# Napolnite zaslon s črno barvo
screen.fill((0, 0, 0))

# Nariši platformo
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma)

# Narišite igralca
pygame.draw.rect (zaslon, PLAYER_COLOR, igralec)

# Posodobite zaslon
pygame.display.flip()

pygame.quit()

Ta koda je podobna prvi stopnji, vendar sta spremenjena platforma in igralčev položaj.

Povezovanje različnih ravni

Če želite povezati različne nivoje, morate spremeniti igralno zanko za preklapljanje med nivoji, ko igralec konča nivo. To lahko storite tako, da ustvarite spremenljivko za sledenje trenutni ravni in uporabite pogojne stavke za preklapljanje med ravnmi. Lahko tudi zaznavanje trkov za preverjanje če je igralec dosegel konec stopnje.

Tukaj je spremenjena zanka igre:

trenutna_nivo = 1

# Narišite platformo in igralca glede na trenutno raven
če trenutna_nivo == 1:
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma1)
pygame.draw.rect (zaslon, PLAYER_COLOR, igralec)
# Preverite, ali je igralec dosegel konec stopnje
če player.colliderect (platforma1) == False:
trenutna_nivo = 2
elif trenutna_nivo == 2:
pygame.draw.rect (zaslon, PLATFORM_COLOR, platform2)
pygame.draw.rect (zaslon, PLAYER_COLOR, igralec)
# Preverite, ali je igralec dosegel konec stopnje
če player.colliderect (platforma2) == Prav:
tek = False

Deljenje podatkov o igri med ravnmi

Podatke o igri morate shraniti, da jih delite med nivoji. Za to ustvarite ločen modul Python za shranjevanje podatkov igre in jih uvozite na vsako raven.

Tukaj so koraki:

  • Ustvarite nov modul Python z imenom game_data.py.
  • Definirajte globalno spremenljivko v game_data.py modul za shranjevanje položaja igralca.
  • V vsaki ravni uvozite podatki o igri modul.
  • Če želite pridobiti položaj igralca na vsaki ravni, uporabite game_data.player_pos namesto ustvarjanja novega predmeta igralca.
  • Če želite posodobiti položaj igralca, spremenite vrednost game_data.player_pos v vsaki ponovitvi.

Tukaj je spremenjena koda za deljenje igralčevega položaja med nivoji.

V game_data.py modulu dodajte naslednjo kodo:

player_pos = (0, 0)

Prva raven:

uvoz pygame
uvoz podatki o igri

# Ustvarite predvajalnik
igralec = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Igralna zanka
tek = Prav
medtem teče:
# Narišite igralca
pygame.draw.rect (zaslon, PLAYER_COLOR, igralec)

# Posodobite položaj igralca v modulu game_data
game_data.player_pos = (player.x, player.y)

Naredite igre bolj privlačne z ravnmi

Če svoji igri dodate različne ravni, jo lahko naredite bolj privlačno in prijetno za igralce. S povezovanjem ravni in deljenjem podatkov o igrah lahko ustvarite brezhibno in povezano igralno izkušnjo. To lahko pomaga igralcem, da ostanejo potopljeni v svet igre in zmanjša verjetnost nezavzetosti ali dolgočasja.