Rebotar
Lección 30 de 41 del curso Crea juegos con Pygame de Coddy.
La pelota rebota en los bordes superior e inferior. En el momento en que toca uno, cambia el signo de vy: moverse hacia abajo se convierte en moverse hacia arriba en la misma cantidad.
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 llega exactamente a 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ácilHaz que la pelota rebote en los bordes superior e inferior.
- Después de mover la pelota, invierte
vycuando la parte superior de la pelota esté en 0 o menos. - Invierte también su dirección cuando la parte inferior esté en 400 o más.
Pulsa «Jugar»: la pelota rebota en el borde inferior. Después, pulsa «Comprobar».
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()
Todas las lecciones de Crea juegos con Pygame
Practica por tu cuenta: Playground de Pygame