Menu
CoddyTech

Lleva la puntuación

Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 27 de 32.

El texto en pygame es una imagen de las palabras. Un pygame.font.Font convierte una cadena en una superficie, y dibujas esa superficie con 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) es la fuente integrada de pygame, de 32 píxeles de alto. Créala una vez, antes del bucle. render(text, True, color) dibuja las palabras; True suaviza sus bordes. blit(surface, (x, y)) copia la imagen en la pantalla con su esquina superior izquierda en (x, y).

Renderiza el texto dentro del bucle, después del relleno. La puntuación cambia, y una imagen creada una sola vez seguirá mostrando el número antiguo.

challenge icon

Desafío

Fácil
  1. Antes del bucle, crea font = pygame.font.Font(None, 32) y score = 0.
  2. Suma 1 a score cuando la cesta atrape un bloque.
  3. Después de dibujar el bloque, renderiza f"Score: {score}" en (240, 240, 240) y dibújalo en (10, 10).

Pruébalo tú mismo

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()

Todas las lecciones de El bucle del juego

Practica por tu cuenta: Playground de Pygame