Menu
CoddyTech

Rebond

Leçon 30 sur 41 du cours Créer 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

Fais rebondir la balle sur le haut et le bas.

  1. Après avoir déplacé la balle, inverse vy lorsque le haut de la balle est à 0 ou moins.
  2. Inverse-la aussi lorsque son bas est à 400 ou plus.

Appuie sur « Jouer » : la balle rebondit sur le bord inférieur. Puis clique sur « Vérifier ».

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()

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

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