Menu
CoddyTech

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 = -vy

Prueba 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.

challenge icon

Desafío

Fácil

Haz que la pelota rebote en los bordes superior e inferior.

  1. Después de mover la pelota, invierte vy cuando la parte superior de la pelota esté en 0 o menos.
  2. 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