Menu
CoddyTech

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

Despué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()
quiz iconPonte a prueba

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

Practica por tu cuenta: Playground de Pygame