Garde le score
Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 27 sur 32.
Le texte dans pygame est une image des mots. Un pygame.font.Font transforme une chaîne de caractères en surface, et tu dessines cette surface avec screen.blit.
font = pygame.font.Font(None, 32)
text = font.render(f"Score: {score}", True, (240, 240, 240))
screen.blit(text, (10, 10))Font(None, 32) est la police intégrée de pygame, d’une hauteur de 32 pixels. Crée-la une fois, avant la boucle. render(text, True, color) dessine les mots ; True lisse leurs contours. blit(surface, (x, y)) copie l’image sur l’écran, avec son coin supérieur gauche en (x, y).
Rends le texte à l’intérieur de la boucle, après le remplissage. Le score change, et une image créée une seule fois continue d’afficher l’ancien nombre.
Défi
Facile- Avant la boucle, crée
font = pygame.font.Font(None, 32)etscore = 0. - Ajoute 1 à
scorelorsque le panier attrape un bloc. - Après avoir dessiné le bloc, affiche
f"Score: {score}"en(240, 240, 240)et blitte-le à(10, 10).
Essayez vous-même
import random
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()
basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 20)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
basket.x -= 8
if keys[pygame.K_RIGHT]:
basket.x += 8
basket.clamp_ip(screen.get_rect())
block.y += 3
if block.top > 360:
block.y = -20
block.x = random.randint(0, 460)
if block.colliderect(basket):
block.y = -20
block.x = random.randint(0, 460)
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), basket)
pygame.draw.rect(screen, (235, 80, 80), block)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Toutes les leçons de La boucle de jeu
1Déplacer un carré
Ouvrir une fenêtreRemplir l’arrière-plan4Déplacement en fonction du temps
Temps deltaPixels par secondeVector2Accélération et frictionBoucler autour de l’écran2Formes et couleurs
Cercles, lignes et polygonesContours et anglesUne scène de formesDes couleurs qui changent5Attrape les blocs
Le panierUn bloc qui tombeEntraînez-vous par vous-même : Playground Pygame