Menu
CoddyTech

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

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 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()
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 Proyectos

Practica por tu cuenta: Playground de Pygame