Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

Ebből az oktatóanyagból megtudhatja, hogyan jelenítheti meg és frissítheti a játékok pontszámait a Pygame-ben, amely egy népszerű Python-könyvtár játékfejlesztéshez. A végére létrehozhat egy egyszerű jumper játékot, és megjelenítheti a játékos pontszámát a képernyőn, ahogy halad. A játék nyomon követi a billentyűzet bevitelét, így a nyílbillentyűkkel mozgathatja a játékost balra és jobbra.

Egyszerű játék létrehozása

Mielőtt megjeleníthetné és frissíthetné a pontszámokat a Pygame-ben, először létre kell hoznia egy játékot, amellyel dolgozni fog. Ebben az oktatóanyagban egy egyszerű játékot hoz létre, amelyben a játékos balra vagy jobbra mozoghat. De előtte kellett volna pip telepítve van a készülékére. A pip telepítése után futtassa az alábbi parancsot a pygame modul telepítéséhez:

csipog telepítés pygame

A kezdéshez importálja a szükséges modulokat, és állítsa be a játék alapstruktúráját:

instagram viewer
import pygame, sys
pygame.init()

# Állítsa be az ablakot
képernyő = pygame.display.set_mode((750, 450))

# Állítsa be a játék óráját
óra = pygame.time. Óra()

# Állítsa be a játékos karakterét
játékos = pygame. Rect(100, 200, 50, 50)

# Állítsa fel az akadályt
akadály = pygame. Rect(200, 200, 50, 50)

# Állítsa be a játékhurkot
mígIgaz:
# Kezelje az eseményeket
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
pygame.quit()
sys.exit()

ha event.type == pygame. KEYDOWN:
ha event.key == pygame. K_LEFT:
játékos.x -= 10
elif event.key == pygame. K_RIGHT:
játékos.x += 10

# Frissítse a játék állapotát

# Rajzold le a játékot
screen.fill((0, 0, 0))
pygame.draw.rect (képernyő, (255, 0, 0), játékos)
pygame.draw.rect (képernyő, (0, 255, 0), akadály)

# Frissítse a kijelzőt
pygame.display.flip()

# Korlátozza a képkockasebességet
clock.tick(60)

Ezzel a vázkóddal az alapjátékod játszható. Nyomja meg balra vagy jobbra a játékos karakterének mozgatásához, amelyet a piros négyzet képvisel.

A játék pontszámának megjelenítése és frissítése

Most, hogy beállította az alapjátékot, adjon hozzá egy pontozási rendszert, és jelenítse meg a pontszámot a képernyőn.

A Pygame beállítása szövegmegjelenítéshez

Szöveg Pygame-ben való megjelenítéséhez először importálni kell a szükséges modulokat, és inicializálnunk kell a font modult. Ehhez használja a következő kódot a szkriptje tetején:

import pygame
import sys
import os

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

A pygame.font modul lehetővé teszi a Pygame szövegmegjelenítési képességeinek használatát, a pygame.init() függvény pedig inicializálja a betűtípus modult.

Alapvető pontozási rendszer létrehozása

Ezután hozzon létre egy alapvető pontozási rendszert a játékához. Ehhez deklaráljon és inicializáljon két változót: score és score_increment. A pontszám változó nyomon követi a játékos aktuális pontszámát, a score_increment változó pedig meghatározza, hogy mennyivel növekedjen a pontszám minden alkalommal, amikor a játékos akadályt érint.

Adja hozzá a következő kódot a szkript tetejéhez, az importálások alá:

pontszám = 0
score_increment = 10

Ezután frissítse a pontszámot a játék előrehaladtával. A játékhurokban ellenőrizheti, hogy a játékos karakter ütközik-e az akadállyal. Ha igen, növelje a pontszámot a score_increment változóban megadott értékkel.

Frissítse a játékhurkot a következő kóddal:

# Frissítse a játék állapotát
ha player.colliderect (akadály):
pontszám += pontszám_növekmény

Ez a kód ellenőrzi, hogy a játékos karakter ütközik-e az akadállyal. Ha igen, akkor a megadott értékkel növeli a pontszámot.

A pontszám megjelenítése a képernyőn a betűtípus modullal

Most, hogy van egy alappontozási rendszerünk, jelenítsük meg a pontszámot a képernyőn a font modul segítségével.

Először állítsuk be a font objektumot a következő kód hozzáadásával a játékhurok tetejére:

# Állítsa be a font objektumot
font = pygame.font. Betűtípus(Egyik sem, 36)

Ez a kód 36 pixel méretű betűtípus objektumot hoz létre, és nincs meghatározott betűtípuscsalád. Testreszabhatja a betűtípust és a betűméretet, ha a Font() függvényben más betűtípusfájlt és -méretet ad meg.

Ezután húzzuk fel a pontszámot a képernyőre. Adja hozzá a következő kódot a játékhurokhoz, miután frissítette a játék állapotát és kitöltötte a képernyőt:

# Rajzolja a pontszámot a képernyőre
score_text = font.render(f'Score: {pontszám}', Igaz, (255, 255, 255))
screen.blit (score_text, (10, 10))

Ez a kód a font objektum render() metódusát használja a pontszámot tartalmazó szövegfelület létrehozására, majd a szövegfelületet a (10, 10) pozícióban a képernyőre blitálja (rajzolja).

A kottaszöveg megjelenésének testreszabása

Végül testreszabhatja a partitúra szövegének megjelenését a betűtípus és a betűméret kiválasztásával, valamint a szöveg színének megváltoztatásával.

Egy adott betűtípus és betűméret kiválasztásához adja át a fontfájlt és -méretet argumentumként a Font() függvénynek:

font = pygame.font. Betűtípus("arial.ttf", 48)

Könnyen lehet különböző betűtípus-fájlok letöltése az internetről. A letöltés után helyezze a fontfájlt a munkakönyvtár gyökerébe.

A szöveg színének megváltoztatásához adjon át egy színsort harmadik argumentumként a render() metódushoz:

score_text = font.render(f'Score: {pontszám}', Igaz, (0, 255, 0))

És ez az! Ezekkel a változtatásokkal egy teljesen működőképes játékpontrendszerrel kell rendelkeznie, amely megjeleníti a pontszámot a képernyőn, és frissíti, ahogy a játékos előrehalad a játékban. Tovább testreszabhatja a kottaszöveg megjelenését, ha különböző betűcsaládokkal, méretekkel és színekkel kísérletezik.

Pontszámkövetés a játékban

Alább a teljes működő kód, ezen is megtalálod a kódot GitHub repo.

import pygame
import os

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

pontszám = 0
score_increment = 10

# Állítsa be az ablakot
képernyő = pygame.display.set_mode((750, 450))

# Állítsa be a játék óráját
óra = pygame.time. Óra()

# Állítsa be a játékos karakterét
játékos = pygame. Rect(100, 200, 50, 50)

# Állítsa fel az akadályt
akadály = pygame. Rect(200, 200, 50, 50)

# Állítsa be a játékhurkot
mígIgaz:
font = pygame.font. Betűtípus(Egyik sem, 36)
# Kezelje az eseményeket
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
pygame.quit()
sys.exit()
ha event.type == pygame. KEYDOWN:
ha event.key == pygame. K_LEFT:
játékos.x -= 10
elif event.key == pygame. K_RIGHT:
játékos.x += 10

# Frissítse a játék állapotát
ha player.colliderect (akadály):
pontszám += pontszám_növekmény


# Rajzold le a játékot
screen.fill((0, 0, 0))
pygame.draw.rect (képernyő, (255, 0, 0), játékos)
pygame.draw.rect (képernyő, (0, 255, 0), akadály)

# Rajzolja a pontszámot a képernyőre
score_text = font.render(f'Score: {pontszám}', Igaz, (255, 255, 255))
screen.blit (score_text, (10, 10))

# Frissítse a kijelzőt
pygame.display.flip()

# Korlátozza a képkockasebességet
clock.tick(60)

Ez a kód létrehoz egy 750x450 pixel méretű ablakot, egy játékos karaktert és egy akadályt. Egy játékhurkot használ az események kezelésére, az állapot frissítésére és a játék képernyőre való megjelenítésére. Tartalmaz egy pontozási rendszert is, amely tíz ponttal növeli a pontszámot minden alkalommal, amikor a játékos karaktere ütközik az akadállyal, és egy font objektum és szöveg renderelő kód jeleníti meg a pontszámot a képernyőn.

Az eseménykezelési részben a kód olyan funkciókat is tartalmaz, amelyek segítségével a játékos karakterét a nyílbillentyűkkel balra és jobbra mozgathatja.

A játékhurok olyan kódot tartalmaz, amely frissíti a kijelzőt, és korlátozza a képkockasebességet 60 FPS-re, biztosítva a játék zökkenőmentes működését.

Összességében ez a kód egy alapvető példa arra, hogyan lehet megjeleníteni és frissíteni a játékok pontszámait a Pygame-ben, és tovább testreszabható és bővíthető összetettebb és vonzóbb játékok létrehozásához.

Hozzon létre különböző játékokat a Pygame segítségével

A Pygame egy hatékony és könnyen használható könyvtár a játékok Pythonban való létrehozásához. A funkciók és képességek gazdag készletével játékok széles skáláját hozhatja létre, az egyszerű jumperektől és platformerektől a bonyolultabb és magával ragadó játékokig.

Akár kezdő, akár tapasztalt játékfejlesztő vagy, a Pygame kiváló választás lebilincselő és szórakoztató játékok készítéséhez.