Zurück zur Mitte
Lektion 33 von 41 im Kurs Spiele mit Pygame erstellen von Coddy.
Wenn ein Spieler den Ball verfehlt, verlässt der Ball das Fenster auf seiner Seite. Bring ihn zurück in die Mitte und schicke ihn in Richtung der anderen Seite.
if ball.right < 0 or ball.left > 600:
ball.center = (300, 200)
vx = -vxball.right < 0 bedeutet, dass sich der ganze Ball hinter dem linken Rand befindet, und ball.left > 600, dass sich der ganze Ball hinter dem rechten Rand befindet. Durch das Setzen von ball.center wird das Rect so verschoben, dass seine Mitte an diesem Punkt liegt; seine Größe bleibt gleich.
Das vx = -vx ist hier unbedenklich: Der Ball befindet sich in der Mitte, weit entfernt von jedem Schläger.
Aufgabe
EinfachBringe einen verpassten Ball zurück in die Mitte.
- Wenn der ganze Ball über den linken oder rechten Rand hinaus ist, setze sein
centerauf(300, 200). - Drehe dort auch
vxum.
Drücke auf „Spielen“ und verfehle den Ball: Er kommt zurück und fliegt in die andere Richtung. Drücke dann auf „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)
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
1Die Spielschleife
Ein Fenster öffnenDen Hintergrund füllen4Zwei Spieler und ein Ball
Der BallAbprallenÜbe selbstständig: Pygame-Playground