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 = -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
FacileAprè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()
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