import pygame def schreibe(s, x, y, farbe = "white", groesse = 32): # font = pygame.font.Font('freesansbold.ttf', groesse) font = pygame.font.Font(None, groesse) text = font.render(s, True, farbe, "black") text_rechteck = text.get_rect() text_rechteck.center = (x, y) fenster.blit(text, text_rechteck) # Abmessungen des Spielfelds fensterbreite = 1000 fensterhoehe = 600 # Abmessungen des Paddle paddlebreite = 200 paddlehoehe = 20 # Radius des Balls ballradius = 20 leben = 5 punkte = 0 # Initialisierunge pygame.init() pygame.display.set_caption("My first game") clockobject = pygame.time.Clock() fensterdimensionen = (fensterbreite, fensterhoehe) fenster = pygame.display.set_mode(fensterdimensionen) # Mittelpunkt des Balls als Liste aus x- und y-Koordinate ballposition = [fensterbreite // 2, fensterhoehe // 2] # Geschwindigkeit des Balls, ebenfalls als Liste aus x- und y-Komponente ballrichtung = [1, 1] # Linke obere Ecke des Paddle. paddleposition = [fensterbreite // 2, fensterhoehe - 100] # Geschwindigkeit des Paddle paddlerichtung = [0, 0] while True: # Tastatureingaben verarbeiten und Paddlerichtung entsprechend ändern for ereignis in pygame.event.get(): if ereignis.type == pygame.QUIT: exit() elif ereignis.type == pygame.KEYDOWN: if ereignis.key == pygame.K_LEFT: paddlerichtung[1] = paddlerichtung[1] - 1 elif ereignis.type == pygame.KEYUP: if ereignis.key == pygame.K_LEFT: paddlerichtung[1] = paddlerichtung[1] + 1 # schwarzen Hintergrund zeichnen fenster.fill("black") # Paddleposition aktualisieren paddleposition[0] = paddleposition[0] + paddlerichtung[0] paddleposition[1] = paddleposition[1] + paddlerichtung[1] # Paddle zeichnen rechteck = pygame.Rect(paddleposition[0], paddleposition[1], paddlebreite, paddlehoehe) pygame.draw.rect(surface=fenster, color="green", rect=rechteck) # Richtung des Balls ändern if ballposition[1] < 100: ballrichtung[0] = - ballrichtung[0] ballrichtung[1] = - ballrichtung[1] if ballposition[1] > 500: ballrichtung[0] = - ballrichtung[0] ballrichtung[1] = - ballrichtung[1] # Ballposition aktualisieren ballposition[0] = ballposition[0]+ballrichtung[0] ballposition[1] = ballposition[1]+ballrichtung[1] # Ball zeichnen pygame.draw.circle(surface=fenster, color="red", center=(ballposition[0], ballposition[1]), radius=ballradius) schreibe("Leben: " + str(leben), fensterbreite // 2, 32) schreibe("Punkte: " + str(punkte), fensterbreite // 2, 64) schreibe("(linke Pfeiltaste steuert Paddle)", fensterbreite // 2, 96) clockobject.tick(400) # Die obigen Zeichenoperationen finden zuerst auf einer Art zweitem Fenster im Hintergrund statt. # Mit dem folgenden Befehl werden sie auf einmal angezeigt. Dies vermeidet Flackern. pygame.display.flip()