Scintille
Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 30 sur 32.
Les vraies étoiles scintillent. Ici, chaque étoile s’assombrit de temps en temps pendant une seule image, par hasard. À chaque image, chaque étoile tire un nombre entre 1 et 30, et si elle tire un 1, elle est dessinée plus sombre :
for star in stars:
colour = (255, 255, 255)
if random.randint(1, 30) == 1:
colour = (110, 120, 170)
pygame.draw.circle(screen, colour, star, 3)colour est initialisée en blanc pour chaque étoile, et le if ne la modifie que si le résultat est 1. Une image sur 30 correspond à environ deux fois par seconde pour chaque étoile, et chaque étoile tire son propre nombre : elles scintillent donc à des moments différents. Ce léger changement irrégulier donne au ciel un aspect vivant.
Ajoute import random en haut du programme. Ici, le tirage aléatoire doit se faire dans la boucle de dessin, car le choix doit être refait à chaque image, pour chaque étoile.
Défi
MoyenFaites scintiller les étoiles :
- Ajoutez
import randomen haut. - Dans la boucle des étoiles, initialisez la
colourde chaque étoile en blanc(255, 255, 255). - Lorsque
random.randint(1, 30) == 1, rendez-la plus sombre(110, 120, 170). - Dessinez l’étoile avec
colour.
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 = []
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.
pygame.draw.circle(screen, (240, 230, 160), (560, 80), 40)
pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))
for star in stars:
pygame.draw.circle(screen, (255, 255, 255), star, 3)
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 LuneEntraînez-vous par vous-même : Playground Pygame