Punktestand
Teil des Abschnitts Projekte der Pygame-Journey von Coddy. Lektion 16 von 31.
Ein Ball, der rechts ins Aus geht, bringt dem linken Spieler einen Punkt, und umgekehrt. Teile die Prüfung in zwei Teile, damit jede Seite weiß, wer gepunktet hat:
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 = -vxZeige beide Punktzahlen in einer Zeile oben zentriert an: f"{left_score} : {right_score}" ergibt 2 : 1.
Aufgabe
Einfach- Lege vor der Schleife
font = pygame.font.Font(None, 36),left_score = 0undright_score = 0fest. - Teile das Zurücksetzen in zwei Fälle auf: Ein Ball, der den rechten Rand überschreitet, erhöht
left_scoreum 1; ein Ball, der den linken Rand überschreitet, erhöhtright_scoreum 1. In beiden Fällen wird der Ball in die Mitte gesetzt undvxumgekehrt. - Zeige
f"{left_score} : {right_score}"in(240, 240, 240)an, zentriert bei(300, 30).
Probier es selbst
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()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Projekte
Übe selbstständig: Pygame-Playground