Rebotar
Lección 30 de 40 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ácilDespués de mover la pelota, invierte vy cuando la parte superior de la pelota esté en 0 o menos, o la 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 Crea juegos con Pygame
1El ciclo del juego
Abrir una ventanaRellenar el fondo4Dos jugadores y una pelota
La pelotaRebotarPractica por tu cuenta: Playground de Pygame