Gérer le temps

Faire faire une pause au programme

Il existe deux méthode pour faire faire une pause au programme : pygame.time.wait(time_ms) et pygame.time.delay(time_ms). Elles prennent toutes les deux un nombre entier de millisecondes en paramètre.

• La méthode pygame.time.wait(time_ms) occupe peu le processeur, mais est moins précise.

• La méthode pygame.time.delay(time_ms) est plus précise, mais occupe davantage le processeur.

Actualiser l'affichage de la fenêtre à intervalle de temps régulier

Présentation

Pour actualiser l'affichage (ou pour toute autre action) à intervalle de temps régulier, on utilise une boucle associée à la méthodes tick(frame) d'un objet de type Clock().

La méthodes tick(frame) se place dans la boucle et prend un taux de rafraîchissement (nombre de rafraîchissement par seconde) en paramètre, de façon à ralentir la vitesse de rafraîchissement de l'animation.

Exemple : déplacement d'un cercle

import pygame
LARGEUR = 400
HAUTEUR = 300
COULEUR_FOND = (0, 0, 0)
COULEUR_OBJET = (255, 0, 0)
fen = pygame.display.set_mode((LARGEUR, HAUTEUR))
clock = pygame.time.Clock()
continuer = True
pos_x = -20
d_x = 4
while continuer :
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            continuer = False
    clock.tick(30)
    fen.fill(COULEUR_FOND)
    pygame.draw.circle(fen, COULEUR_OBJET, (pos_x, HAUTEUR // 2), 40)
    pygame.display.flip()
    pos_x = (pos_x + d_x) % LARGEUR
pygame.display.quit()