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.
Desafío
Fácil- Antes del bucle, crea
font = pygame.font.Font(None, 32)yscore = 0. - Suma 1 a
scorecuando la cesta atrape un bloque. - 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
1Mueve un cuadrado
Abre una ventanaRellena el fondo4Movimiento basado en el tiempo
Tiempo deltaPíxeles por segundoVector2Aceleración y fricciónReaparecer al otro lado de la pantalla2Formas y colores
Círculos, líneas y polígonosContornos y esquinasUna escena de formasColores que cambian5Atrapa los bloques
La cestaUn bloque que caePractica por tu cuenta: Playground de Pygame