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.
Défi
FacileCompte les gemmes et affiche le nombre en haut.
- Ajoute
score = 0avant la boucle, puis ajoute 1 à cette valeur lorsqu’un clic touche la gemme. - Après avoir dessiné la gemme, pour chaque
idansrange(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
1Déplacer un carré
Ouvrir une fenêtreRemplir l’arrière-plan4Déplacement en fonction du temps
Temps deltaPixels par secondeVector2Accélération et frictionBoucler autour de l’écranEntraînez-vous par vous-même : Playground Pygame