I denne øvelse lærer du, hvordan du viser og opdaterer spilresultater i Pygame, et populært Python-bibliotek til spiludvikling. Ved udgangen vil du være i stand til at oprette et simpelt jumper-spil og vise spillerens score på skærmen, efterhånden som de skrider frem. Spillet sporer tastaturinput, så du kan flytte afspilleren til venstre og højre ved hjælp af piletasterne.
Oprettelse af et simpelt spil
Før du kan vise og opdatere resultater i Pygame, skal du først oprette et spil at arbejde med. I denne vejledning vil du lave et simpelt spil, hvor en spiller kan bevæge sig til venstre eller højre. Men før det burde du have pip installeret på din enhed. Efter installation af pip, kør nedenstående kommando for at installere pygame-modulet:
pip installere pygame
For at komme i gang skal du importere de nødvendige moduler og opsætte spillets grundlæggende struktur:
importere pygame, sys
pygame.init()# Sæt vinduet op
skærm = pygame.display.set_mode((750, 450))# Indstil spilleuret
ur = pygame.time. Ur()# Indstil spillerkarakteren
spiller = pygame. Rekt(100, 200, 50, 50)# Sæt forhindringen op
forhindring = pygame. Rekt(200, 200, 50, 50)# Opsæt spilløkken
mensRigtigt:
# Håndter begivenheder
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
pygame.quit()
sys.exit()hvis event.type == pygame. NASTATUR:
hvis event.key == pygame. K_LEFT:
player.x -= 10
elif event.key == pygame. K_RIGHT:
player.x += 10
# Opdater spiltilstanden
# Tegn spillet
screen.fill((0, 0, 0))
pygame.draw.rect (skærm, (255, 0, 0), spiller)
pygame.draw.rect (skærm, (0, 255, 0), forhindring)
# Opdater displayet
pygame.display.flip()
# Begræns billedhastigheden
clock.tick(60)
Med denne skeletkode kan dit grundlæggende spil spilles. Tryk til venstre eller højre for at flytte spillerkarakteren, repræsenteret ved den røde firkant.
Visning og opdatering af spilresultat
Nu hvor du har et grundlæggende spil sat op, skal du tilføje et scoringssystem og vise scoren på skærmen.
Opsætning af Pygame til tekstgengivelse
For at vise tekst i Pygame skal vi først importere de nødvendige moduler og initialisere fontmodulet. For at gøre dette skal du bruge følgende kode øverst i dit script:
importere pygame
importere sys
importere os
pygame.init()
pygame.font.init()
pygame.font-modulet lader dig bruge Pygames tekstgengivelsesfunktioner, og funktionen pygame.init() initialiserer fontmodulet.
Oprettelse af et grundlæggende scoresystem
Derefter skal du oprette et grundlæggende scoringssystem til dit spil. For at gøre det skal du deklarere og initialisere to variable: score og score_increment. Scorevariablen vil holde styr på spillerens aktuelle score, og score_increment-variablen vil specificere hvor meget scoren skal stige hver gang spilleren rører en forhindring.
Tilføj følgende kode til toppen af dit script under importen:
score = 0
score_increment = 10
Opdater derefter scoren, efterhånden som spillet skrider frem. I spilløkken kan du tjekke, om spillerkarakteren kolliderer med forhindringen. Hvis de er det, skal du øge scoren med det beløb, der er angivet i variablen score_increment.
Opdater spilløkken til at inkludere følgende kode:
# Opdater spiltilstanden
hvis player.colliderect (forhindring):
score += score_increment
Denne kode kontrollerer, om spillerens karakter kolliderer med forhindringen. Hvis de er, øges scoren med det angivne beløb.
Visning af scoren på skærmen med skrifttypemodulet
Nu hvor vi har et grundlæggende scoresystem på plads, lad os vise scoren på skærmen ved hjælp af skrifttypemodulet.
Lad os først opsætte skrifttypeobjektet ved at tilføje følgende kode til toppen af spilløkken:
# Konfigurer skrifttypeobjektet
font = pygame.font. Skrifttype(Ingen, 36)
Denne kode opretter et skrifttypeobjekt med en størrelse på 36 pixels og ingen specificeret skrifttypefamilie. Du kan tilpasse skrifttypen og skriftstørrelsen ved at angive en anden skrifttypefil og -størrelse i Font()-funktionen.
Lad os derefter tegne scoren til skærmen. Tilføj følgende kode til spilløkken, efter at du har opdateret spiltilstanden og udfyldt skærmen:
# Tegn partituret til skærmen
score_text = font.render(f'Score: {score}', Rigtigt, (255, 255, 255))
screen.blit (score_text, (10, 10))
Denne kode bruger render()-metoden for skrifttypeobjektet til at skabe en tekstoverflade, der indeholder partituret, og derefter blitter (tegner) tekstoverfladen til skærmen ved positionen (10, 10).
Tilpasning af partiturets udseende
Til sidst tilpasser du partiturets udseende ved at vælge en skrifttype og skriftstørrelse og ændre farven på teksten.
For at vælge en specifik skrifttype og skriftstørrelse skal du overføre skrifttypefilen og størrelsen som argumenter til Font()-funktionen:
font = pygame.font. Skrifttype('arial.ttf', 48)
Du kan sagtens download forskellige skrifttypefiler fra internettet. Efter download skal du blot placere skrifttypefilen i roden af din arbejdsmappe.
For at ændre farven på teksten skal du sende en farvetupel som det tredje argument til render()-metoden:
score_text = font.render(f'Score: {score}', Rigtigt, (0, 255, 0))
Og det er det! Med disse ændringer skulle du nu have et fuldt funktionelt spilscoresystem, der viser scoren på skærmen og opdaterer den, efterhånden som spilleren skrider frem gennem spillet. Du kan yderligere tilpasse udseendet af partiturteksten ved at eksperimentere med forskellige skrifttypefamilier, størrelser og farver.
Scoresporing i spil
Nedenfor er den fulde arbejdskode, du kan også finde koden på denne GitHub repo.
importere pygame
importere ospygame.init()
pygame.font.init()score = 0
score_increment = 10# Sæt vinduet op
skærm = pygame.display.set_mode((750, 450))# Indstil spilleuret
ur = pygame.time. Ur()# Indstil spillerkarakteren
spiller = pygame. Rekt(100, 200, 50, 50)# Sæt forhindringen op
forhindring = pygame. Rekt(200, 200, 50, 50)# Opsæt spilløkken
mensRigtigt:
font = pygame.font. Skrifttype(Ingen, 36)
# Håndter begivenheder
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
pygame.quit()
sys.exit()
hvis event.type == pygame. NASTATUR:
hvis event.key == pygame. K_LEFT:
player.x -= 10
elif event.key == pygame. K_RIGHT:
player.x += 10
# Opdater spiltilstanden
hvis player.colliderect (forhindring):
score += score_increment
# Tegn spillet
screen.fill((0, 0, 0))
pygame.draw.rect (skærm, (255, 0, 0), spiller)
pygame.draw.rect (skærm, (0, 255, 0), forhindring)
# Tegn partituret til skærmen
score_text = font.render(f'Score: {score}', Rigtigt, (255, 255, 255))
screen.blit (score_text, (10, 10))
# Opdater displayet
pygame.display.flip()
# Begræns billedhastigheden
clock.tick(60)
Denne kode opretter et vindue med en størrelse på 750x450 pixels, en spillerkarakter og en forhindring. Den bruger en spilløkke til at håndtere begivenheder, opdatere tilstand og tegne spillet til skærmen. Det inkluderer også et scoringssystem, der øger scoren med ti point, hver gang spillerens karakter kolliderer med forhindringen, og et skrifttypeobjekt og tekstgengivelseskode for at vise partituret på skærmen.
I begivenhedshåndteringssektionen inkluderer koden også funktionalitet til at flytte spillerkarakteren til venstre og højre ved hjælp af piletasterne.
Spilløkken inkluderer kode til at opdatere skærmen og begrænse billedhastigheden til 60 FPS, hvilket sikrer, at spillet kører problemfrit.
Samlet set giver denne kode et grundlæggende eksempel på, hvordan man viser og opdaterer spilresultater i Pygame, og den kan tilpasses yderligere og udvides for at skabe mere komplekse og engagerende spil.
Opret forskellige spil ved hjælp af Pygame
Pygame er et kraftfuldt og brugervenligt bibliotek til at skabe spil i Python. Med dets rige sæt af funktioner og muligheder kan du skabe en bred vifte af spil, fra simple jumpere og platformere til mere komplekse og fordybende spil.
Uanset om du er nybegynder eller erfaren spiludvikler, er Pygame et glimrende valg til at skabe engagerende og sjove spil.