Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

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:

instagram viewer
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 os

pygame.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.