Nombres aléatoires
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 28 sur 32.
Le module random de Python choisit des nombres au hasard. Importez-le en haut du programme, au-dessus ou au-dessous de import pygame :
import randomrandom.randint(a, b) donne un nombre entier entre a et b, bornes incluses. random.choice(items) choisit un élément d’une liste :
x = random.randint(20, 620)
size = random.choice([3, 4, 5])À chaque appel, un nouveau choix est effectué : appelez donc la fonction au moment où vous avez besoin d’une nouvelle valeur. Une étoile placée avec la barre d’espace :
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
x = random.randint(20, 620)
y = random.randint(60, 300)
stars.append((x, y))Notez les doubles parenthèses dans stars.append((x, y)) : append prend un seul élément, et cet élément est le tuple (x, y). Si vous choisissez plutôt x et y une seule fois avant la boucle de jeu, toutes les étoiles apparaîtront au même endroit.
Défi
MoyenLaisse la barre d’espace disperser des étoiles :
- Ajoute
import randomen haut. - Lorsqu’un événement
KEYDOWNpourK_SPACEarrive, choisisx = random.randint(20, 620)ety = random.randint(60, 300), puis ajoute(x, y)àstars. - Les clics continuent d’ajouter des étoiles comme avant.
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 de 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:
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()
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
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