Rebond
Fait partie de la section Projets du Journey Pygame de Coddy. Leçon 12 sur 31.
Une balle rebondit sur les bords supérieur et inférieur. Au moment où elle en touche un, inverse le signe de vy : le mouvement vers le bas devient un mouvement vers le haut de la même amplitude.
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, inverse vy lorsque le haut de la balle est à 0 ou moins, ou que son bas est à 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 Projets
Entraînez-vous par vous-même : Playground Pygame