Menu
CoddyTech

Cuenta las gemas

Parte de la sección El bucle del juego del Journey de Pygame de Coddy. Lección 15 de 35.

Un juego necesita una puntuación. Guárdala en una variable creada antes del bucle, score = 0, y suma 1 con score += 1 cada vez que el jugador atrape una gema.

Este juego muestra la puntuación como una fila de cuadrados pequeños, uno por punto. Un bucle for dibuja una fila de cualquier cosa: aquí, tres círculos separados por 30 píxeles.

for i in range(3):
    pygame.draw.circle(screen, (255, 200, 0), (20 + 30 * i, 20), 10)

En la primera pasada, i es 0, después 1 y después 2, así que cada círculo queda 30 píxeles más a la derecha. Con range(score), la fila crece en uno cada vez que aumenta la puntuación.

challenge icon

Desafío

Fácil

Cuenta las gemas y muestra el total en la parte superior.

  1. Añade score = 0 antes del bucle y súmale 1 cuando un clic acierte la gema.
  2. Después de dibujar la gema, para cada i en range(score), dibuja un rectángulo rosa (240, 110, 180) en (10 + 10 * i, 14, 8, 8).

Pulsa «Jugar» y atrapa tres gemas: tres marcas rosas se alinearán en la parte superior izquierda. Después, pulsa «Comprobar».

Pruébalo tú mismo

import random
import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Gem Hunt")
clock = pygame.time.Clock()

gx, gy = 225, 165

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos
            if gx <= x <= gx + 30 and gy <= y <= gy + 30:
                gx = random.randint(15, 435)
                gy = random.randint(55, 315)

    screen.fill((30, 30, 46))
    gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
    pygame.draw.polygon(screen, (80, 220, 255), gem_points)
    mouse_x, mouse_y = pygame.mouse.get_pos()
    pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Todas las lecciones de El bucle del juego

Practica por tu cuenta: Playground de Pygame