import pygame # Abmessungen des Spielfelds fensterbreite = 1000 fensterhoehe = 600 # Radius des Balls ballradius = 20 # Position des Balls: Ballmittelpunkt als Liste aus x- und y-Koordinate ballposition = [fensterbreite // 2, fensterhoehe // 2] # Bewegungsvektor des Balls (pro Zeiteinheit), ebenfalls als Liste aus x- und y-Komponente ballvektor = [1, 1] # Höhe des Balkens balkenhoehe = 20 # Initialisierungen pygame.init() pygame.display.set_caption("Bouncing Ball") clockobject = pygame.time.Clock() fensterdimensionen = (fensterbreite, fensterhoehe) fenster = pygame.display.set_mode(fensterdimensionen) # Game loop while True: # Programmende, wenn Fenster geschlossen wird. for ereignis in pygame.event.get(): if ereignis.type == pygame.QUIT: exit() # schwarzen Hintergrund zeichnen fenster.fill("black") # Richtung des Balls ändern if ballposition[0] > 700: ballvektor[0] = -ballvektor[1] ballvektor[1] = 0 # Ballposition aktualisieren ballposition[0] = ballposition[0]+ballvektor[0] ballposition[1] = ballposition[1]+ballvektor[1] print(f'{ballposition=}, {ballvektor=}') # Ball zeichnen pygame.draw.circle(surface=fenster, color="red", center=(ballposition[0], ballposition[1]), radius=ballradius) # Balken an unterem Spielfeldrand zeichnen rechteck = pygame.Rect(0, fensterhoehe-balkenhoehe, fensterbreite, balkenhoehe) pygame.draw.rect(surface=fenster, color="green", rect=rechteck) clockobject.tick(200) # Der obige Zeichenbefehl wird zuerst auf einer Art zweitem Fenster im Hintergrund ausgeführt. # Mit dem folgenden Befehl wechselt man augenblicklich auf dieses Fenster. # Dies vermeidet, insbesondere wenn man vieles zeichnet, Flackern. pygame.display.flip()