Menu
CoddyTech

Compter les gemmes

Fait partie de la section La boucle de jeu du Journey Pygame de Coddy. Leçon 15 sur 35.

Un jeu a besoin d’un score. Stocke-le dans une variable créée avant la boucle, score = 0, et ajoute 1 avec score += 1 chaque fois que le joueur attrape une gemme.

Ce jeu affiche le score sous forme d’une rangée de petits carrés, un par point. Une boucle for dessine une rangée de n’importe quel élément : ici, trois cercles espacés de 30 pixels.

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

Au premier passage, i vaut 0, puis 1, puis 2, donc chaque cercle se trouve 30 pixels plus à droite. Avec range(score), la rangée s’allonge d’un élément chaque fois que le score augmente.

challenge icon

Défi

Facile

Compte les gemmes et affiche le nombre en haut.

  1. Ajoute score = 0 avant la boucle, puis ajoute 1 à cette valeur lorsqu’un clic touche la gemme.
  2. Après avoir dessiné la gemme, pour chaque i dans range(score), dessine un rectangle rose (240, 110, 180) à (10 + 10 * i, 14, 8, 8).

Appuie sur « Jouer » et attrape trois gemmes : trois marques roses s’alignent en haut à gauche. Puis appuie sur « Vérifier ».

Essayez vous-même

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

Toutes les leçons de La boucle de jeu

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