Menu
CoddyTech

Rebond

Leçon 30 sur 40 du cours Créez des jeux avec Pygame de Coddy.

Une balle rebondit sur les bords supérieur et inférieur. Au moment où elle en touche un, inverse le signe de vy : elle descend et se met à monter de la même distance.

if ball.top <= 0 or ball.bottom >= 400:
    vy = -vy

Teste avec <= et >=, pas avec ==. La balle se déplace de 4 pixels par image, donc son bord inférieur passe par 395, 399, 403 et n’atteint jamais exactement 400.

Les bords gauche et droit sont les endroits où l’on marque des points, donc la balle n’y rebondit pas. Pour l’instant, elle sort de l’écran.

challenge icon

Défi

Facile

Après avoir déplacé la balle, inversez vy lorsque le bord supérieur de la balle est à 0 ou moins, ou son bord inférieur à 400 ou plus.

Essayez vous-même

import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pong")
clock = pygame.time.Clock()

ball = pygame.Rect(293, 193, 14, 14)
vx, vy = 5, 4

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

    ball.x += vx
    ball.y += vy

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), ball)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Créez des jeux avec Pygame

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