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 = -vyTeste 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.
Défi
FacileFais rebondir la balle sur le haut et le bas.
- Après avoir déplacé la balle, inverse
vylorsque le haut de la balle est à 0 ou moins. - 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