Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

V tomto tutoriálu se naučíte, jak zobrazit a aktualizovat skóre her v Pygame, oblíbené knihovně Pythonu pro vývoj her. Na konci budete moci vytvořit jednoduchou skákačku a během postupu zobrazovat skóre hráče na obrazovce. Hra sleduje vstup z klávesnice, takže můžete hráčem pohybovat doleva a doprava pomocí kláves se šipkami.

Vytvoření jednoduché hry

Než budete moci zobrazovat a aktualizovat skóre v Pygame, musíte nejprve vytvořit hru, se kterou budete pracovat. V tomto tutoriálu vytvoříte jednoduchou hru, kde se hráč může pohybovat doleva nebo doprava. Ale předtím byste měli pip nainstalovaný na vašem zařízení. Po instalaci pip spusťte níže uvedený příkaz a nainstalujte modul pygame:

pip Nainstalujte pygame

Chcete-li začít, importujte potřebné moduly a nastavte základní strukturu hry:

import 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áče
hráč = pygame. Rect(100, 200, 50, 50)

# Postavte překážku
překážka = pygame. Rect(200, 200, 50, 50)

# Nastavte herní smyčku
zatímcoSkutečný:
# Zvládněte události
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
pygame.quit()
sys.exit()

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

# Aktualizujte stav hry

# Nakreslete hru
screen.fill((0, 0, 0))
pygame.draw.rect (obrazovka, (255, 0, 0), hráč)
pygame.draw.rect (obrazovka, (0, 255, 0), překážka)

# Aktualizujte displej
pygame.display.flip()

# Omezte snímkovou frekvenci
hodiny.tikat(60)

S tímto kódem kostry je hratelná vaše základní hra. Stisknutím doleva nebo doprava posunete postavu hráče, kterou představuje červený čtverec.

Zobrazení a aktualizace skóre hry

Nyní, když máte základní nastavení hry, přidejte bodovací systém a zobrazte skóre na obrazovce.

Nastavení Pygame pro vykreslování textu

Pro zobrazení textu v Pygame musíme nejprve importovat potřebné moduly a inicializovat modul fontů. Chcete-li to provést, použijte následující kód v horní části skriptu:

import pygame
import sys
import os

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

Modul pygame.font vám umožňuje používat možnosti vykreslování textu Pygame a funkce pygame.init() inicializuje modul fontů.

Vytvoření základního bodovacího systému

Dále vytvořte základní bodovací systém pro vaši hru. Chcete-li tak učinit, deklarujte a inicializujte dvě proměnné: score a score_increment. Proměnná skóre bude sledovat aktuální skóre hráče a proměnná score_increment určí, o kolik se má skóre zvýšit pokaždé, když se hráč dotkne překážky.

Přidejte následující kód na začátek skriptu pod importy:

skóre = 0
přírůstek_skóru = 10

Dále aktualizujte skóre v průběhu hry. V herní smyčce můžete zkontrolovat, zda postava hráče nenaráží na překážku. Pokud ano, zvyšte skóre o částku zadanou v proměnné score_increment.

Aktualizujte herní smyčku tak, aby obsahovala následující kód:

# Aktualizujte stav hry
-li player.colliderect (překážka):
skóre += přírůstek_skóru

Tento kód kontroluje, zda postava hráče nenaráží na překážku. Pokud ano, zvýší skóre o zadanou částku.

Zobrazení skóre na obrazovce pomocí modulu písma

Nyní, když máme zaveden základní bodovací systém, zobrazme skóre na obrazovce pomocí modulu písma.

Nejprve nastavíme objekt písma přidáním následujícího kódu do horní části herní smyčky:

# Nastavte objekt písma
font = pygame.font. Písmo(Žádný, 36)

Tento kód vytvoří objekt písma o velikosti 36 pixelů a bez specifikované rodiny písem. Písmo a velikost písma můžete přizpůsobit zadáním jiného souboru a velikosti písma ve funkci Font().

Dále nakreslíme skóre na obrazovku. Po aktualizaci stavu hry a vyplnění obrazovky přidejte do herní smyčky následující kód:

# Nakreslete skóre na obrazovku
score_text = font.render(f'Score: {skóre}', Skutečný, (255, 255, 255))
screen.blit (text_skóre, (10, 10))

Tento kód používá metodu render() objektu fontu k vytvoření textové plochy obsahující notový zápis a poté vykreslí (vykreslí) textovou plochu na obrazovku na pozici (10, 10).

Přizpůsobení vzhledu textu partitury

Nakonec upravte vzhled textu partitury výběrem písma a velikosti písma a změnou barvy textu.

Chcete-li vybrat konkrétní písmo a velikost písma, předejte soubor a velikost písma jako argumenty funkci Font():

font = pygame.font. Písmo('arial.ttf', 48)

Můžete snadno stáhnout různé soubory písem z internetu. Po stažení stačí umístit soubor s písmem do kořenového adresáře vašeho pracovního adresáře.

Chcete-li změnit barvu textu, předejte metodě render() jako třetí argument barevnou n-tici:

score_text = font.render(f'Score: {skóre}', Skutečný, (0, 255, 0))

A to je vše! Díky těmto změnám byste nyní měli mít plně funkční systém skóre hry, který zobrazuje skóre na obrazovce a aktualizuje je, jak hráč postupuje hrou. Vzhled textu notového zápisu můžete dále přizpůsobit experimentováním s různými rodinami písem, velikostmi a barvami.

Sledování skóre ve hře

Níže je uveden úplný pracovní kód, kód najdete také na tomto GitHub repo.

import pygame
import os

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

skóre = 0
přírůstek_skóru = 10

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

# Nastavte herní hodiny
hodiny = pygame.time. Hodiny()

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

# Postavte překážku
překážka = pygame. Rect(200, 200, 50, 50)

# Nastavte herní smyčku
zatímcoSkutečný:
font = pygame.font. Písmo(Žádný, 36)
# Zvládněte události
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
pygame.quit()
sys.exit()
-li event.type == pygame. KEYDOWN:
-li event.key == pygame. K_LEFT:
hráč.x -= 10
elif event.key == pygame. K_RIGHT:
hráč.x += 10

# Aktualizujte stav hry
-li player.colliderect (překážka):
skóre += přírůstek_skóru


# Nakreslete hru
screen.fill((0, 0, 0))
pygame.draw.rect (obrazovka, (255, 0, 0), hráč)
pygame.draw.rect (obrazovka, (0, 255, 0), překážka)

# Nakreslete skóre na obrazovku
score_text = font.render(f'Score: {skóre}', Skutečný, (255, 255, 255))
screen.blit (text_skóre, (10, 10))

# Aktualizujte displej
pygame.display.flip()

# Omezte snímkovou frekvenci
hodiny.tikat(60)

Tento kód vytvoří okno o velikosti 750x450 pixelů, hráčskou postavu a překážku. Ke zpracování událostí, aktualizaci stavu a kreslení hry na obrazovku používá herní smyčku. Zahrnuje také bodovací systém, který zvyšuje skóre o deset bodů pokaždé, když hráčská postava koliduje s překážkou a objektem písma a kódem vykreslování textu se skóre zobrazí na obrazovce.

V sekci zpracování událostí kód také obsahuje funkci pohybu postavy hráče doleva a doprava pomocí kláves se šipkami.

Herní smyčka obsahuje kód pro aktualizaci displeje a omezení snímkové frekvence na 60 FPS, což zajišťuje hladký chod hry.

Celkově tento kód poskytuje základní příklad toho, jak zobrazit a aktualizovat skóre her v Pygame, a lze jej dále upravovat a rozšiřovat a vytvářet tak složitější a poutavější hry.

Vytvářejte různé hry pomocí Pygame

Pygame je výkonná a snadno použitelná knihovna pro vytváření her v Pythonu. Díky bohaté sadě funkcí a schopností můžete vytvářet širokou škálu her, od jednoduchých skákadel a plošinovek až po složitější a pohlcující hry.

Ať už jste začátečník nebo zkušený herní vývojář, Pygame je vynikající volbou pro vytváření poutavých a zábavných her.