Cliquer pour ajouter
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 25 sur 32.
Une liste peut s’agrandir pendant que le jeu s’exécute. stars.append(item) ajoute un élément à la fin.
Un clic de souris arrive dans la boucle d’événements sous forme d’événement MOUSEBUTTONDOWN, et event.pos indique où il s’est produit, sous la forme d’un tuple (x, y) :
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
stars.append(event.pos)Chaque clic ajoute une position. La partie dessin affiche déjà chaque étoile de la liste, donc la nouvelle étoile apparaît à la prochaine image et y reste, car la liste la conserve.
La liste est vide au départ, dans la partie configuration : stars = []. Créée à l’intérieur de la boucle de jeu, elle serait vidée à chaque image et chaque étoile disparaîtrait aussitôt.
Défi
FacileDans la boucle d’événements, lorsqu’un événement MOUSEBUTTONDOWN survient, ajoutez event.pos à stars. Chaque clic place alors une étoile blanche.
Essayez vous-même
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Préparez les éléments ici, avant la boucle du jeu.
stars = []
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Modifiez les éléments ici, une fois par image.
screen.fill((20, 24, 48))
# Dessinez ici, après le remplissage.
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Toutes les leçons de Python dans une fenêtre de jeu
1Votre première fenêtre
Votre premier programmeAfficher un messageLes couleurs en nombresDessiner la Lune3Si et touches
Passer de l’autre côté du bordLes touches déplacent la luneElif et ElseEt, ouVrai ou faux6Des listes de choses
Une liste d’étoilesCliquer pour ajouterCompter avec lenSupprimer une étoileNombres aléatoiresEntraînez-vous par vous-même : Playground Pygame