Sellest õpetusest saate teada, kuidas kuvada ja värskendada mängutulemusi Pygame'is, mis on mängude arendamiseks mõeldud populaarne Pythoni teegi. Lõpuks saate luua lihtsa hüppajamängu ja kuvada mängija edenemise ajal ekraanil mängija skoori. Mäng jälgib klaviatuuri sisendit, nii et saate mängijat nooleklahvide abil vasakule ja paremale liigutada.
Lihtsa mängu loomine
Enne kui saate Pygame'is tulemusi kuvada ja värskendada, peate esmalt looma mängu, millega töötada. Selles õpetuses saate luua lihtsa mängu, kus mängija saab liikuda vasakule või paremale. Aga enne seda oleks pidanud pip teie seadmesse installitud. Pärast pip installimist käivitage pygame mooduli installimiseks allolev käsk:
pip installida pygame
Alustamiseks importige vajalikud moodulid ja seadistage mängu põhistruktuur:
importida pygame, sys
pygame.init()# Seadistage aken
ekraan = pygame.display.set_mode((750, 450))# Seadistage mängukell
kell = pygame.time. Kell ()# Seadistage mängija tegelane
mängija = mängumäng. Rect(100, 200, 50, 50)# Seadistage takistus
takistus = mängumäng. Rect(200, 200, 50, 50)# Seadistage mängusilmus
samal ajalTõsi:
# Juhtige sündmusi
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
pygame.quit()
sys.exit()kui event.type == mängumäng. KEYDOWN:
kui event.key == mängumäng. K_LEFT:
mängija.x -= 10
elif event.key == mängumäng. K_RIGHT:
mängija.x += 10
# Värskendage mängu olekut
# Joonistage mäng
screen.fill((0, 0, 0))
pygame.draw.rect (ekraan, (255, 0, 0), mängija)
pygame.draw.rect (ekraan, (0, 255, 0), takistus)
# Värskendage ekraani
pygame.display.flip()
# Piirake kaadrisagedust
kell.tikk(60)
Selle skeletikoodiga on teie põhimäng mängitav. Vajutage vasakule või paremale, et liigutada mängija tähemärki, mida tähistab punane ruut.
Mängu skoori kuvamine ja värskendamine
Nüüd, kui põhimäng on seadistatud, lisage punktisüsteem ja kuvage tulemus ekraanil.
Pygame'i seadistamine teksti renderdamiseks
Pygame'is teksti kuvamiseks peame esmalt importima vajalikud moodulid ja lähtestama fondimooduli. Selleks kasutage skripti ülaosas olevat järgmist koodi:
importida pygame
importida sys
importida os
pygame.init()
pygame.font.init()
Moodul pygame.font võimaldab kasutada Pygame'i teksti renderdamise võimalusi ja funktsioon pygame.init() lähtestab fondimooduli.
Põhilise punktisüsteemi loomine
Järgmisena looge oma mängu jaoks põhiline punktisüsteem. Selleks deklareerige ja lähtestage kaks muutujat: score ja score_increment. Hinde muutuja jälgib mängija hetkeskoori ja muutuja score_increment määrab, kui palju skoor peaks suurenema iga kord, kui mängija takistust puudutab.
Lisage järgmine kood oma skripti ülaossa importimise alla:
skoor = 0
skoori_kasv = 10
Järgmisena värskendage skoori mängu edenedes. Mängutsüklis saate kontrollida, kas mängija tegelane põrkub takistusega kokku. Kui on, suurendage skoori muutujas score_increment määratud summa võrra.
Värskendage mängutsüklit, et lisada järgmine kood:
# Värskendage mängu olekut
kui player.colliderect (takistus):
skoor += skoori_kasv
See kood kontrollib, kas mängija tegelane põrkub takistusega kokku. Kui on, suurendab see skoori määratud summa võrra.
Skoori kuvamine ekraanil fondimooduli abil
Nüüd, kui meil on olemas põhiline hindamissüsteem, kuvame fondi mooduli abil skoori ekraanil.
Esmalt seadistame fondiobjekti, lisades järgmise koodi mängutsükli ülaossa:
# Seadistage fondiobjekt
font = pygame.font. Font(Mitte ühtegi, 36)
See kood loob fondiobjekti suurusega 36 pikslit ja määratlemata fondiperekonda. Fondi ja fondi suurust saate kohandada, määrates funktsioonis Font() erineva fondifaili ja suuruse.
Järgmisena joonistame skoori ekraanile. Pärast mängu oleku värskendamist ja ekraani täitmist lisage mängutsüklile järgmine kood:
# Joonistage skoor ekraanile
score_text = font.render(f'Skoor: {score}', Tõsi, (255, 255, 255))
screen.blit (skoori_tekst, (10, 10))
See kood kasutab fondiobjekti meetodit render() skoori sisaldava tekstipinna loomiseks ja seejärel blitseerib (joonistab) tekstipinna ekraanile kohas (10, 10).
Partituuri teksti välimuse kohandamine
Lõpuks kohandage partituuri teksti välimust, valides fondi ja fondi suuruse ning muutes teksti värvi.
Konkreetse fondi ja fondi suuruse valimiseks edastage fondifail ja suurus argumentidena funktsioonile Font():
font = pygame.font. Font("arial.ttf", 48)
Saate lihtsalt laadige alla erinevad fondifailid internetist. Pärast allalaadimist asetage fondifail lihtsalt oma töökataloogi juurtesse.
Teksti värvi muutmiseks edastage meetodi render() kolmanda argumendina värvikorter:
score_text = font.render(f'Skoor: {score}', Tõsi, (0, 255, 0))
Ja see ongi kõik! Nende muudatustega peaks teil nüüd olema täielikult toimiv mängupunktide süsteem, mis kuvab skoori ekraanil ja värskendab seda mängu edenedes. Saate skoori teksti välimust veelgi kohandada, katsetades erinevate fondiperekondade, suuruste ja värvidega.
Tulemuste jälgimine mängus
Allpool on täielik töökood, selle leiate ka sellelt GitHub repo.
importida pygame
importida ospygame.init()
pygame.font.init()skoor = 0
skoori_kasv = 10# Seadistage aken
ekraan = pygame.display.set_mode((750, 450))# Seadistage mängukell
kell = pygame.time. Kell ()# Seadistage mängija tegelane
mängija = mängumäng. Rect(100, 200, 50, 50)# Seadistage takistus
takistus = mängumäng. Rect(200, 200, 50, 50)# Seadistage mängusilmus
samal ajalTõsi:
font = pygame.font. Font(Mitte ühtegi, 36)
# Juhtige sündmusi
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
pygame.quit()
sys.exit()
kui event.type == mängumäng. KEYDOWN:
kui event.key == mängumäng. K_LEFT:
mängija.x -= 10
elif event.key == mängumäng. K_RIGHT:
mängija.x += 10
# Värskendage mängu olekut
kui player.colliderect (takistus):
skoor += skoori_kasv
# Joonistage mäng
screen.fill((0, 0, 0))
pygame.draw.rect (ekraan, (255, 0, 0), mängija)
pygame.draw.rect (ekraan, (0, 255, 0), takistus)
# Joonistage skoor ekraanile
score_text = font.render(f'Skoor: {score}', Tõsi, (255, 255, 255))
screen.blit (skoori_tekst, (10, 10))
# Värskendage ekraani
pygame.display.flip()
# Piirake kaadrisagedust
kell.tikk(60)
See kood loob akna suurusega 750x450 pikslit, mängija tegelase ja takistuse. See kasutab sündmuste käsitlemiseks, oleku värskendamiseks ja mängu ekraanile tõmbamiseks mängusilmust. See sisaldab ka punktisüsteemi, mis suurendab skoori kümne punkti võrra iga kord, kui mängija tegelane mängib põrkab kokku takistusega ning fondiobjekti ja teksti renderduskoodiga, et kuvada skoori ekraanil.
Sündmuste käsitlemise jaotises sisaldab kood ka funktsioone mängija tegelase liigutamiseks nooleklahvide abil vasakule ja paremale.
Mängutsükkel sisaldab koodi ekraani värskendamiseks ja kaadrisageduse piiramiseks 60 kaadrit sekundis, tagades mängu sujuva kulgemise.
Üldiselt on see kood põhinäide Pygame'is mängude tulemuste kuvamise ja värskendamise kohta ning seda saab veelgi kohandada ja laiendada, et luua keerukamaid ja kaasahaaravaid mänge.
Looge Pygame abil erinevaid mänge
Pygame on võimas ja lihtsalt kasutatav raamatukogu Pythonis mängude loomiseks. Selle rikkalike funktsioonide ja võimalustega saate luua laia valikut mänge, alates lihtsatest hüppajatest ja platvormimängijatest kuni keerukamate ja kaasahaaravamate mängudeni.
Olenemata sellest, kas olete algaja või kogenud mänguarendaja, on Pygame suurepärane valik köitvate ja lõbusate mängude loomiseks.