Menu
CoddyTech

Passer de l’autre côté du bord

Fait partie de la section Python dans une fenêtre de jeu du Journey Pygame de Coddy. Leçon 10 sur 32.

Un if exécute ses lignes uniquement lorsqu’une condition est vraie :

if comet_x > 640:
    comet_x = 0

La condition se termine par deux-points. Les lignes qui suivent sont indentées de 4 espaces : elles font partie du if. Python teste la condition à chaque image. Tant que la comète se trouve dans la fenêtre, la condition est fausse et rien ne se passe. Une fois que la comète dépasse le bord droit, la condition est vraie et la comète retourne à gauche.

Une comparaison vaut soit True, soit False. > signifie supérieur à, < inférieur à, et == vérifie si deux valeurs sont égales. Un seul = stocke une valeur ; deux servent à comparer.

Teste une plage, comme > 640, plutôt qu’une valeur exacte. La comète commence à 50 et avance de 3 pixels par image : 635, 638, 641. Elle n’atteint jamais 640, donc comet_x == 640 ne serait jamais vrai.

challenge icon

Défi

Facile

Après la ligne qui déplace la comète, ajoute une instruction if : lorsque comet_x est supérieur à 640, définis comet_x à 0. La comète traverse alors la fenêtre encore et encore.

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.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Modifiez les éléments ici, à chaque image.
    comet_x = comet_x + 3

    screen.fill((20, 24, 48))
    # Dessinez ici, après le remplissage.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Toutes les leçons de Python dans une fenêtre de jeu

Entraînez-vous par vous-même : Playground Pygame