Punktestand
Lektion 34 von 41 im Kurs Spiele mit Pygame erstellen von Coddy.
Ein Ball, der rechts hinausfliegt, bringt dem linken Spieler einen Punkt, und umgekehrt. Teile die Prüfung in zwei Fälle auf, 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 Punktestände in einer Zeile oben mittig an: f"{left_score} : {right_score}" ergibt 2 : 1.
Aufgabe
EinfachFühre für beide Spieler den Spielstand.
- Erstelle vor der Schleife
font = pygame.font.Font(None, 36),left_score = 0undright_score = 0. - Geht der Ball rechts hinaus, wird
left_scoreum 1 erhöht, linksright_score; in beiden Fällen wird der Ball weiterhin zurückgesetzt. - Rendere
f"{left_score} : {right_score}"in(240, 240, 240), zentriert bei(300, 30).
Drücke „Spielen“ und verfehle den Ball: Der Spielstand zeigt 1 : 0. Drücke dann „Prüfen“.
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()
Alle Lektionen in Spiele mit Pygame erstellen
Übe selbstständig: Pygame-Playground