Marcador
Parte de la sección Proyectos del Journey de Pygame de Coddy. Lección 16 de 31.
Una pelota que sale por la derecha suma un punto para el jugador de la izquierda, y viceversa. Divide la prueba en dos para que cada lado sepa quién anotó:
if ball.left > 600:
left_score += 1
ball.center = (300, 200)
vx = -vx
if ball.right < 0:
right_score += 1
ball.center = (300, 200)
vx = -vxMuestra ambas puntuaciones en una sola línea en la parte superior, centradas: f"{left_score} : {right_score}" se lee 2 : 1.
Desafío
Fácil- Antes del bucle, crea
font = pygame.font.Font(None, 36),left_score = 0yright_score = 0. - Divide el reinicio en dos: una pelota que supera el borde derecho suma 1 a
left_score; una pelota que supera el borde izquierdo suma 1 aright_score. Ambos casos llevan la pelota al centro e inviertenvx. - Renderiza
f"{left_score} : {right_score}"en(240, 240, 240), centrado en(300, 30).
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
left = pygame.Rect(20, 160, 12, 80)
right = pygame.Rect(568, 160, 12, 80)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
left.y -= 6
if keys[pygame.K_s]:
left.y += 6
if keys[pygame.K_UP]:
right.y -= 6
if keys[pygame.K_DOWN]:
right.y += 6
left.clamp_ip(screen.get_rect())
right.clamp_ip(screen.get_rect())
ball.x += vx
ball.y += vy
if ball.top <= 0 or ball.bottom >= 400:
vy = -vy
if ball.colliderect(left):
vx = abs(vx)
if ball.colliderect(right):
vx = -abs(vx)
if ball.right < 0 or ball.left > 600:
ball.center = (300, 200)
vx = -vx
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 160, 255), left)
pygame.draw.rect(screen, (235, 80, 80), right)
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 Proyectos
Practica por tu cuenta: Playground de Pygame