Rebote
Parte de la sección Proyectos del Journey de Pygame de Coddy. Lección 12 de 31.
Una pelota rebota en los bordes superior e inferior. En el momento en que toca uno, invierte el signo de vy: al moverse hacia abajo, pasa a moverse hacia arriba la misma distancia.
if ball.top <= 0 or ball.bottom >= 400:
vy = -vyPrueba con <= y >=, no con ==. La pelota se mueve 4 píxeles por fotograma, así que su borde inferior pasa por 395, 399, 403 y nunca es exactamente 400.
Los bordes izquierdo y derecho son donde se anotan los puntos, así que la pelota no rebota allí. Por ahora, sale volando.
Desafío
FácilDespués de mover la pelota, invierte vy cuando la parte superior de la pelota esté en 0 o menos, o su parte inferior en 400 o más.
Pruébalo tú mismo
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()
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Proyectos
Practica por tu cuenta: Playground de Pygame