Tenir le score
Leçon 13 sur 41 du cours Créer des jeux avec Pygame de Coddy.
Le texte dans pygame est une image des mots. Un pygame.font.Font transforme une chaîne de caractères en surface, puis 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 seule 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, son coin supérieur gauche étant placé 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
FacileCompte les blocs attrapés à l’écran.
- 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}"dans(240, 240, 240)et affiche-le à(10, 10).
Appuie sur « Jouer » et attrape un bloc : Score: 1 s’affiche. Puis appuie sur « Vérifier ».
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 Créer des jeux avec Pygame
Entraînez-vous par vous-même : Playground Pygame