Menu
CoddyTech

Marquer des points

Leçon 13 sur 40 du cours Créez 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.

challenge icon

Défi

Facile
  1. Avant la boucle, définis font = pygame.font.Font(None, 32) et score = 0.
  2. Ajoute 1 à score lorsque le panier attrape un bloc.
  3. Après avoir dessiné le bloc, rends f"Score: {score}" dans (240, 240, 240) et affiche-le avec blit à (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()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Créez des jeux avec Pygame

Entraînez-vous par vous-même : Playground Pygame