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:
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 ospygame.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.