Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

V tomto návode sa naučíte, ako zobraziť a aktualizovať skóre hier v Pygame, populárnej knižnici Python pre vývoj hier. Na konci budete môcť vytvoriť jednoduchú skákačku a počas postupu zobrazovať skóre hráča na obrazovke. Hra sleduje vstup z klávesnice, takže môžete hráčom pohybovať doľava a doprava pomocou kláves so šípkami.

Vytvorenie jednoduchej hry

Predtým, ako budete môcť zobraziť a aktualizovať skóre v Pygame, musíte najskôr vytvoriť hru, s ktorou budete pracovať. V tomto návode vytvoríte jednoduchú hru, v ktorej sa hráč môže pohybovať doľava alebo doprava. Ale predtým by ste mali pip nainštalovaný na vašom zariadení. Po inštalácii pip spustite nižšie uvedený príkaz na inštaláciu modulu pygame:

pip Inštalácia pygame

Ak chcete začať, importujte potrebné moduly a nastavte základnú štruktúru hry:

importovať pygame, sys
pygame.init()

# Nastavte okno
obrazovka = pygame.display.set_mode((750, 450))

instagram viewer

# Nastavte herné hodiny
hodiny = pygame.time. hodiny()

# Nastavte postavu hráča
hráč = pygame. Rect(100, 200, 50, 50)

# Postavte prekážku
prekážka = pyhra. Rect(200, 200, 50, 50)

# Nastavte hernú slučku
zatiaľ čoPravda:
# Zvládnite udalosti
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
pygame.quit()
sys.exit()

ak event.type == pygame. KEYDOWN:
ak event.key == pygame. K_LEFT:
hráč.x -= 10
elif event.key == pygame. K_RIGHT:
hráč.x += 10

# Aktualizujte stav hry

# Nakreslite hru
screen.fill((0, 0, 0))
pygame.draw.rect (obrazovka, (255, 0, 0), hráč)
pygame.draw.rect (obrazovka, (0, 255, 0), prekážka)

# Aktualizujte displej
pygame.display.flip()

# Obmedzte snímkovú frekvenciu
clock.tick(60)

S týmto kódom kostry je možné hrať vašu základnú hru. Stlačením doľava alebo doprava posuniete postavu hráča, ktorú predstavuje červený štvorec.

Zobrazenie a aktualizácia skóre hry

Teraz, keď máte základnú hru nastavenú, pridajte bodovací systém a zobrazte skóre na obrazovke.

Nastavenie Pygame na vykresľovanie textu

Na zobrazenie textu v Pygame musíme najskôr importovať potrebné moduly a inicializovať modul fontov. Ak to chcete urobiť, použite nasledujúci kód v hornej časti skriptu:

importovať pygame
importovať sys
importovať os

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

Modul pygame.font vám umožňuje využívať možnosti vykresľovania textu Pygame a funkcia pygame.init() inicializuje modul fontov.

Vytvorenie základného bodovacieho systému

Ďalej vytvorte základný bodovací systém pre svoju hru. Ak to chcete urobiť, deklarujte a inicializujte dve premenné: skóre a prírastok skóre. Premenná skóre bude sledovať aktuálne skóre hráča a premenná score_increment určí, o koľko sa má skóre zvýšiť vždy, keď sa hráč dotkne prekážky.

Pridajte nasledujúci kód do hornej časti skriptu pod importy:

skóre = 0
prírastok_skóru = 10

Potom aktualizujte skóre v priebehu hry. V hernej slučke môžete skontrolovať, či postava hráča nenaráža na prekážku. Ak sú, zvýšte skóre o čiastku určenú v premennej skóre_inkrement.

Aktualizujte hernú slučku tak, aby obsahovala nasledujúci kód:

# Aktualizujte stav hry
ak player.colliderect (prekážka):
skóre += prírastok skóre

Tento kód skontroluje, či postava hráča nenaráža na prekážku. Ak sú, zvýši skóre o zadanú čiastku.

Zobrazenie skóre na obrazovke pomocou modulu písma

Teraz, keď máme zavedený základný bodovací systém, zobrazme skóre na obrazovke pomocou modulu písma.

Najprv nastavme objekt písma pridaním nasledujúceho kódu do hornej časti hernej slučky:

# Nastavte objekt písma
font = pygame.font. Font(žiadne, 36)

Tento kód vytvorí objekt písma s veľkosťou 36 pixelov a bez špecifikovanej rodiny písma. Písmo a veľkosť písma môžete prispôsobiť zadaním iného súboru a veľkosti písma vo funkcii Font().

Ďalej nakreslíme skóre na obrazovku. Po aktualizácii stavu hry a vyplnení obrazovky pridajte do hernej slučky nasledujúci kód:

# Nakreslite skóre na obrazovku
score_text = font.render(f'Score: {skóre}', Pravda, (255, 255, 255))
screen.blit (text_skóre, (10, 10))

Tento kód používa metódu render() objektu fontu na vytvorenie povrchu textu obsahujúceho notový zápis a potom vykreslí (vykreslí) povrch textu na obrazovku v pozícii (10, 10).

Prispôsobenie vzhľadu textu skóre

Nakoniec upravte vzhľad textu partitúry výberom písma a veľkosti písma a zmenou farby textu.

Ak chcete vybrať konkrétne písmo a veľkosť písma, odovzdajte súbor a veľkosť písma ako argumenty do funkcie Font():

font = pygame.font. Font('arial.ttf', 48)

Môžete ľahko stiahnuť rôzne súbory písiem z internetu. Po stiahnutí stačí umiestniť súbor písma do koreňového adresára vášho pracovného adresára.

Ak chcete zmeniť farbu textu, odovzdajte metóde render() ako tretí argument farebnú n-tku:

score_text = font.render(f'Score: {skóre}', Pravda, (0, 255, 0))

A je to! Vďaka týmto zmenám by ste teraz mali mať plne funkčný systém skóre hry, ktorý zobrazuje skóre na obrazovke a aktualizuje ho, keď hráč postupuje hrou. Vzhľad textu partitúry môžete ďalej prispôsobiť experimentovaním s rôznymi rodinami písma, veľkosťami a farbami.

Sledovanie skóre v hre

Nižšie je uvedený úplný pracovný kód, kód nájdete aj na tomto GitHub repo.

importovať pygame
importovať os

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

skóre = 0
prírastok_skóru = 10

# Nastavte okno
obrazovka = pygame.display.set_mode((750, 450))

# Nastavte herné hodiny
hodiny = pygame.time. hodiny()

# Nastavte postavu hráča
hráč = pygame. Rect(100, 200, 50, 50)

# Postavte prekážku
prekážka = pyhra. Rect(200, 200, 50, 50)

# Nastavte hernú slučku
zatiaľ čoPravda:
font = pygame.font. Font(žiadne, 36)
# Zvládnite udalosti
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
pygame.quit()
sys.exit()
ak event.type == pygame. KEYDOWN:
ak event.key == pygame. K_LEFT:
hráč.x -= 10
elif event.key == pygame. K_RIGHT:
hráč.x += 10

# Aktualizujte stav hry
ak player.colliderect (prekážka):
skóre += prírastok skóre


# Nakreslite hru
screen.fill((0, 0, 0))
pygame.draw.rect (obrazovka, (255, 0, 0), hráč)
pygame.draw.rect (obrazovka, (0, 255, 0), prekážka)

# Nakreslite skóre na obrazovku
score_text = font.render(f'Score: {skóre}', Pravda, (255, 255, 255))
screen.blit (text_skóre, (10, 10))

# Aktualizujte displej
pygame.display.flip()

# Obmedzte snímkovú frekvenciu
clock.tick(60)

Tento kód vytvorí okno s veľkosťou 750x450 pixelov, postavu hráča a prekážku. Používa hernú slučku na spracovanie udalostí, aktualizáciu stavu a kreslenie hry na obrazovku. Zahŕňa tiež systém bodovania, ktorý zvyšuje skóre o desať bodov zakaždým, keď postava hráča koliduje s prekážkou a objektom písma a kódom vykresľovania textu na zobrazenie skóre na obrazovke.

V sekcii spracovania udalostí kód obsahuje aj funkciu na pohyb postavy hráča doľava a doprava pomocou klávesov so šípkami.

Herná slučka obsahuje kód na aktualizáciu displeja a obmedzenie snímkovej frekvencie na 60 FPS, čím sa zabezpečí plynulý chod hry.

Celkovo tento kód poskytuje základný príklad toho, ako zobraziť a aktualizovať skóre hier v Pygame, a možno ho ďalej prispôsobovať a rozširovať, aby sa vytvorili komplexnejšie a pútavejšie hry.

Vytvorte rôzne hry pomocou Pygame

Pygame je výkonná a ľahko použiteľná knižnica na vytváranie hier v Pythone. Vďaka bohatej sade funkcií a schopností môžete vytvárať širokú škálu hier, od jednoduchých skákačiek a plošiniek až po zložitejšie a pohlcujúce hry.

Či už ste začiatočník alebo skúsený vývojár hier, Pygame je vynikajúcou voľbou na vytváranie pútavých a zábavných hier.