Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

V tej vadnici se boste naučili, kako prikazati in posodobiti rezultate iger v Pygame, priljubljeni knjižnici Python za razvoj iger. Na koncu boste lahko ustvarili preprosto igro skakanja in prikazali rezultat igralca na zaslonu, ko napreduje. Igra spremlja vnos s tipkovnico, tako da lahko premikate igralca levo in desno s puščičnimi tipkami.

Ustvarjanje preproste igre

Preden lahko prikažete in posodobite rezultate v Pygame, morate najprej ustvariti igro, s katero boste delali. V tej vadnici boste ustvarili preprosto igro, kjer se lahko igralec premika levo ali desno. Toda pred tem bi morali imeti pip nameščen v vaši napravi. Po namestitvi pip zaženite spodnji ukaz za namestitev modula pygame:

pip namestite pygame

Za začetek uvozite potrebne module in nastavite osnovno strukturo igre:

uvoz pygame, sys
pygame.init()

# Nastavite okno
zaslon = pygame.display.set_mode((750, 450))

instagram viewer

# Nastavite uro za igro
ura = pygame.time. ura()

# Nastavite lik igralca
igralec = pygame. Rect(100, 200, 50, 50)

# Postavite oviro
ovira = pygame. Rect(200, 200, 50, 50)

# Nastavite zanko igre
medtemPrav:
# Obravnavajte dogodke
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
pygame.quit()
sys.exit()

če event.type == pygame. KEYDOWN:
če event.key == pygame. K_LEVO:
igralec.x -= 10
elif event.key == pygame. K_DESNO:
igralec.x += 10

# Posodobite stanje igre

# Nariši igro
screen.fill((0, 0, 0))
pygame.draw.rect (zaslon, (255, 0, 0), igralec)
pygame.draw.rect (zaslon, (0, 255, 0), ovira)

# Posodobite zaslon
pygame.display.flip()

# Omejite hitrost sličic
clock.tick(60)

S to okostno kodo je mogoče igrati vašo osnovno igro. Pritisnite levo ali desno, da premaknete lik igralca, ki ga predstavlja rdeči kvadrat.

Prikaz in posodabljanje rezultatov igre

Zdaj, ko imate nastavljeno osnovno igro, dodajte sistem točkovanja in prikažite rezultat na zaslonu.

Nastavitev Pygame za upodabljanje besedila

Za prikaz besedila v Pygame moramo najprej uvoziti potrebne module in inicializirati modul pisave. Če želite to narediti, uporabite naslednjo kodo na vrhu skripta:

uvoz pygame
uvoz sys
uvoz os

pygame.init()
pygame.font.init()

Modul pygame.font vam omogoča uporabo zmožnosti upodabljanja besedila Pygame, funkcija pygame.init() pa inicializira modul pisave.

Ustvarjanje osnovnega sistema točkovanja

Nato ustvarite osnovni sistem točkovanja za svojo igro. Če želite to narediti, deklarirajte in inicializirajte dve spremenljivki: score in score_increment. Spremenljivka rezultatov bo spremljala trenutni rezultat igralca, spremenljivka score_increment pa bo določila, za koliko naj se rezultat poveča vsakič, ko se igralec dotakne ovire.

Dodajte naslednjo kodo na vrh skripta, pod uvozi:

rezultat = 0
rezultat_inkrement = 10

Nato posodobite rezultat, ko igra napreduje. V igralni zanki lahko preverite, ali igralec trči v oviro. Če so, povečajte rezultat za znesek, določen v spremenljivki score_increment.

Posodobite zanko igre, da bo vključevala naslednjo kodo:

# Posodobite stanje igre
če player.colliderect (ovira):
ocena += povečanje_točke

Ta koda preveri, ali igralec trči v oviro. Če so, poveča rezultat za določen znesek.

Prikaz rezultata na zaslonu z modulom pisave

Zdaj, ko imamo vzpostavljen osnovni sistem točkovanja, prikažimo rezultat na zaslonu z uporabo modula pisave.

Najprej nastavimo objekt pisave z dodajanjem naslednje kode na vrh igralne zanke:

# Nastavite objekt pisave
pisava = pygame.font. Pisava (Noben, 36)

Ta koda ustvari objekt pisave z velikostjo 36 slikovnih pik in brez določene družine pisav. Pisavo in velikost pisave lahko prilagodite tako, da v funkciji Font() določite drugo datoteko in velikost pisave.

Nato na zaslon narišimo rezultat. Dodajte naslednjo kodo v zanko igre, potem ko ste posodobili stanje igre in zapolnili zaslon:

# Narišite rezultat na zaslon
score_text = font.render(f'Score: {ocena}', Prav, (255, 255, 255))
screen.blit (score_text, (10, 10))

Ta koda uporablja metodo render() predmeta pisave za ustvarjanje besedilne površine, ki vsebuje partituro, in nato zabriše (nariše) besedilno površino na zaslon na položaju (10, 10).

Prilagajanje videza besedila partiture

Na koncu prilagodite videz besedila partiture tako, da izberete pisavo in velikost pisave ter spremenite barvo besedila.

Če želite izbrati določeno pisavo in velikost pisave, posredujte datoteko in velikost pisave kot argumenta funkciji Font():

pisava = pygame.font. Pisava ('arial.ttf', 48)

Z lahkoto lahko prenesite različne datoteke s pisavami iz interneta. Po prenosu samo postavite datoteko pisave v koren vašega delovnega imenika.

Če želite spremeniti barvo besedila, posredujte barvno torko kot tretji argument metodi render():

score_text = font.render(f'Score: {ocena}', Prav, (0, 255, 0))

In to je to! S temi spremembami bi zdaj morali imeti popolnoma delujoč sistem rezultatov igre, ki prikazuje rezultat na zaslonu in ga posodablja, ko igralec napreduje skozi igro. Videz besedila partiture lahko dodatno prilagodite tako, da eksperimentirate z različnimi družinami pisav, velikostmi in barvami.

Sledenje rezultatom v igri

Spodaj je celotna delovna koda, kodo lahko najdete tudi na tem GitHub repo.

uvoz pygame
uvoz os

pygame.init()
pygame.font.init()

rezultat = 0
rezultat_inkrement = 10

# Nastavite okno
zaslon = pygame.display.set_mode((750, 450))

# Nastavite uro za igro
ura = pygame.time. ura()

# Nastavite lik igralca
igralec = pygame. Rect(100, 200, 50, 50)

# Postavite oviro
ovira = pygame. Rect(200, 200, 50, 50)

# Nastavite zanko igre
medtemPrav:
pisava = pygame.font. Pisava (Noben, 36)
# Obravnavajte dogodke
za dogodek v pygame.event.get():
če event.type == pygame. PRENEHATI:
pygame.quit()
sys.exit()
če event.type == pygame. KEYDOWN:
če event.key == pygame. K_LEVO:
igralec.x -= 10
elif event.key == pygame. K_DESNO:
igralec.x += 10

# Posodobite stanje igre
če player.colliderect (ovira):
ocena += povečanje_točke


# Nariši igro
screen.fill((0, 0, 0))
pygame.draw.rect (zaslon, (255, 0, 0), igralec)
pygame.draw.rect (zaslon, (0, 255, 0), ovira)

# Narišite rezultat na zaslon
score_text = font.render(f'Score: {ocena}', Prav, (255, 255, 255))
screen.blit (score_text, (10, 10))

# Posodobite zaslon
pygame.display.flip()

# Omejite hitrost sličic
clock.tick(60)

Ta koda ustvari okno velikosti 750 x 450 slikovnih pik, lik igralca in oviro. Uporablja igralno zanko za obravnavanje dogodkov, posodabljanje stanja in risanje igre na zaslon. Vključuje tudi sistem točkovanja, ki poveča rezultat za deset točk vsakič, ko je igralec lik trči ob oviro ter predmet pisave in kodo za upodabljanje besedila za prikaz rezultata na zaslonu.

V razdelku za obravnavanje dogodkov koda vključuje tudi funkcijo premikanja lika igralca levo in desno s puščičnimi tipkami.

Igralna zanka vključuje kodo za posodobitev zaslona in omejitev hitrosti sličic na 60 sličic na sekundo, kar zagotavlja nemoteno delovanje igre.

Na splošno ta koda zagotavlja osnovni primer, kako prikazati in posodobiti rezultate iger v Pygame, in jo je mogoče dodatno prilagoditi in razširiti, da ustvarite bolj zapletene in privlačne igre.

Ustvarite različne igre z uporabo Pygame

Pygame je zmogljiva in za uporabo enostavna knjižnica za ustvarjanje iger v Pythonu. Z bogatim naborom funkcij in zmožnosti lahko ustvarite široko paleto iger, od preprostih skakalcev in platformnih iger do bolj zapletenih in poglobljenih iger.

Ne glede na to, ali ste začetnik ali izkušen razvijalec iger, je Pygame odlična izbira za ustvarjanje privlačnih in zabavnih iger.