Supprimer une étoile
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 27 sur 32.
Les listes rétrécissent aussi. stars.pop() supprime le dernier élément, le plus récent. stars.pop(0) supprime le premier. stars.remove(item) supprime le premier élément égal à item.
Retirer un élément d’une liste vide provoque une erreur, IndexError: pop from empty list, et le programme s’arrête. Vérifie d’abord la longueur :
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
if len(stars) > 0:
stars.pop()Note les deux if. Le premier sélectionne l’appui sur Espace parmi les événements, le second vérifie qu’il y a une étoile à supprimer.
Dans un if, une liste vide est considérée comme False et une liste contenant des éléments comme True : if stars: signifie donc la même chose que if len(stars) > 0:.
Défi
MoyenFais en sorte que la barre d’espace retire une étoile :
- Dans la boucle d’événements, lorsqu’un événement
KEYDOWNpourK_SPACEarrive, retire la dernière étoile avecstars.pop(). - Ne retire une étoile que si la liste n’est pas vide, afin qu’appuyer sur la barre d’espace sans étoile ne fasse rien.
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()
# Initialisez les éléments ici, avant la boucle du jeu.
stars = []
font = pygame.font.Font(None, 36)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
stars.append(event.pos)
# 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)
text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
screen.blit(text, (20, 20))
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