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.
Desafío
FácilCuenta las gemas y muestra el total en la parte superior.
- Añade
score = 0antes del bucle y súmale 1 cuando un clic acierte la gema. - Después de dibujar la gema, para cada
ienrange(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
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 pantallaPractica por tu cuenta: Playground de Pygame