Evo kako svojoj igri možete dodati razine kako biste je učinili privlačnijom i ugodnijom.

Razine su bitan aspekt većine videoigara. Oni pružaju strukturu, izazov i raznolikost te mogu značajno poboljšati iskustvo igrača. PyGame, popularna Python biblioteka za razvoj igara, pruža razne značajke pomoću kojih možete jednostavno kreirati različite razine. Dobro osmišljena razina može očarati igrača, stvoriti osjećaj napredovanja i na kraju ga nagraditi za njihov trud.

Razine planiranja i projektiranja

Prije stvaranja razina, bitno ih je isplanirati i dizajnirati. Razine planiranja pomažu u stvaranju dobro strukturirane igre koja igračima pruža pravu razinu težine. Za planiranje razina morate uzeti u obzir različite čimbenike kao što su mehanika igre, priča i ukupna struktura igre.

Na primjer, ako dizajnirate platformersku igru, morate razmisliti o postavljanju platformi, neprijateljima i preprekama. Također morate uzeti u obzir igračeve pokrete, poput skakanja i trčanja, te prema tome dizajnirati razine.

instagram viewer

Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.

Stvaranje dvije jednostavne razine

Prije početka provjerite imate li pip instaliran na vašem sustavu. Koristite ovu naredbu za instalaciju pygame knjižnica:

pip instaliraj pygame

Sada stvorite dvije jednostavne razine s platformom i igračem. Evo koda za prvu razinu:

uvoz pygame

pygame.init()

# Definirajte konstante
SCREEN_WIDTH = 800
VISINA_EKRANA = 600
PLATFORMA_WIDTH = 100
VISINA_PLATFORME = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

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

# Kreirajte platformu
platforma = pygame. Pravo(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Kreirajte player
igrač = pygame. Pravo(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Petlja igre
trčanje = Pravi
dok trčanje:
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno
elif event.type == pygame. KEYDOWN:
ako event.key == pygame. K_LIJEVO:
player.move_ip(-10, 0)
elif event.key == pygame. K_DESNO:
player.move_ip(10, 0)

# Ispunite ekran crnom bojom
screen.fill((0, 0, 0))

# Nacrtajte platformu
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma)

# Nacrtajte igrača
pygame.draw.rect (zaslon, PLAYER_COLOR, igrač)

# Ažurirajte zaslon
pygame.display.flip()

pygame.quit()

Nakon toga kreirajte drugu razinu jednostavnom promjenom platforme i pozicije igrača. Evo koda za drugu razinu:

uvoz pygame

pygame.init()

# Definirajte konstante
SCREEN_WIDTH = 800
VISINA_EKRANA = 600
PLATFORMA_WIDTH = 150
VISINA_PLATFORME = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

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

# Kreirajte platformu
platforma = pygame. Pravo(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Kreirajte player
igrač = pygame. Pravo(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Petlja igre
trčanje = Pravi
dok trčanje:
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
trčanje = lažno
elif event.type == pygame. KEYDOWN:
ako event.key == pygame. K_LIJEVO:
player.move_ip(-10, 0)
elif event.key == pygame. K_DESNO:
player.move_ip(10, 0)

# Ispunite ekran crnom bojom
screen.fill((0, 0, 0))

# Nacrtajte platformu
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma)

# Nacrtajte igrača
pygame.draw.rect (zaslon, PLAYER_COLOR, igrač)

# Ažurirajte zaslon
pygame.display.flip()

pygame.quit()

Ovaj kod je sličan prvoj razini, ali su platforma i pozicije igrača promijenjene.

Povezivanje različitih razina

Da biste povezali različite razine, morate modificirati petlju igre za prebacivanje između razina kada igrač završi razinu. To možete učiniti stvaranjem varijable za praćenje trenutne razine i korištenjem uvjetnih naredbi za prebacivanje između razina. Također možete otkriti sudare provjeriti ako je igrač došao do kraja razine.

Evo modificirane petlje igre:

trenutna_razina = 1

# Nacrtajte platformu i igrača na temelju trenutne razine
ako trenutna_razina == 1:
pygame.draw.rect (zaslon, PLATFORM_COLOR, platforma1)
pygame.draw.rect (zaslon, PLAYER_COLOR, igrač)
# Provjerite je li igrač došao do kraja razine
ako igrač.colliderect (platforma1) == lažno:
trenutna_razina = 2
elif trenutna_razina == 2:
pygame.draw.rect (zaslon, PLATFORM_COLOR, platform2)
pygame.draw.rect (zaslon, PLAYER_COLOR, igrač)
# Provjerite je li igrač došao do kraja razine
ako player.colliderect (platform2) == Pravi:
trčanje = lažno

Dijeljenje podataka igre između razina

Morate pohraniti podatke igre da biste ih dijelili između razina. U tu svrhu izradite zaseban Python modul za pohranjivanje podataka igre i njihov uvoz na svaku razinu.

Evo koraka:

  • Stvorite novi Python modul pod nazivom game_data.py.
  • Definirajte globalnu varijablu u game_data.py modul za pohranjivanje pozicije igrača.
  • U svakoj razini uvezite podaci_igre modul.
  • Da biste dohvatili poziciju igrača na svakoj razini, koristite game_data.player_pos varijablu umjesto stvaranja novog objekta igrača.
  • Za ažuriranje pozicije igrača, promijenite vrijednost game_data.player_pos u svakoj iteraciji.

Evo modificiranog koda za dijeljenje pozicije igrača između razina.

u game_data.py modul, dodajte sljedeći kod:

player_pos = (0, 0)

Prva razina:

uvoz pygame
uvoz podaci_igre

# Kreirajte player
igrač = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Petlja igre
trčanje = Pravi
dok trčanje:
# Nacrtajte igrača
pygame.draw.rect (zaslon, PLAYER_COLOR, igrač)

# Ažurirajte poziciju igrača u modulu game_data
game_data.player_pos = (player.x, player.y)

Učinite igre privlačnijim uz razine

Dodavanje različitih razina vašoj igri može je učiniti privlačnijom i ugodnijom za igrače. Povezivanjem razina i dijeljenjem podataka o igrama možete stvoriti besprijekorno i kohezivno iskustvo igranja. To može pomoći igračima da ostanu uronjeni u svijet igre i smanjiti vjerojatnost odvajanja ili dosade.