Menu
CoddyTech

Abprallen

Lektion 30 von 41 im Kurs Spiele mit Pygame erstellen von Coddy.

Ein Ball prallt an der oberen und unteren Kante ab. Sobald er eine davon berührt, kehre das Vorzeichen von vy um: Aus der Bewegung nach unten wird eine Bewegung nach oben um denselben Betrag.

if ball.top <= 0 or ball.bottom >= 400:
    vy = -vy

Teste mit <= und >=, nicht mit ==. Der Ball bewegt sich pro Frame um 4 Pixel, daher nimmt seine Unterkante die Werte 395, 399, 403 an und ist niemals genau bei 400.

An der linken und rechten Kante werden Punkte erzielt, deshalb prallt der Ball dort nicht ab. Vorerst fliegt er hinaus.

challenge icon

Aufgabe

Einfach

Lass den Ball von der oberen und unteren Kante abprallen.

  1. Drehe nach dem Bewegen des Balls vy um, wenn die Oberkante des Balls bei 0 oder darunter liegt.
  2. Drehe es auch um, wenn die Unterkante bei 400 oder darüber liegt.

Drücke „Spielen“: Der Ball prallt von der unteren Kante ab. 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

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

Alle Lektionen in Spiele mit Pygame erstellen

Übe selbstständig: Pygame-Playground