Programme mit Pygame funktionieren nicht

  • Ich habe divers Programme die Pygame zur grafischen Darstellung nutzen. Seit bookworm funtionieren sie nicht mehr. Pygame ist in der virtuellen Umgebung installiert. Um das Problem pragmatisch anzugehen habe ich ein kleines Programm geschrieben:

    # Test Bookworm and Pygame in a virtual environment

    import pygame
    import time
    pygame.init()

    # Fenster initialisieren
    pygame.display.init()
    screen = pygame.display.set_mode((400,400), 0, 0)

    # Farbe für Hintergrund festlegen
    colour = (255,0,0)
    screen.fill(colour) # Hintergrundfarbe ist rot

    pygame.display.flip()

    time.sleep(15)

    Mit diesem Kommando wird das Programm aufgerufen:

    pi@raspberrypi:~ $ source foobar/bin/activate
    (foobar) pi@raspberrypi:~ $ /home/pi/foobar/bin/python3 /home/pi/Programme/0main.py
    pygame 2.6.0 (SDL 2.28.4, Python 3.11.2)
    Hello from the pygame community. https://www.pygame.org/contribute.html
    (foobar) pi@raspberrypi:~ $

    Es erscheint ein schwarzes Fenster und nicht ein mit rot ausgefülltes Fenster.Hat jemand eine Idee was ich tun muss damit das Programm tut was ich erwarte?

    Ich habe das Programm modifiziert nun ist der erste Bildschirm schwarz und alle folgenden rot:/

    # Test Bookworm and Pygame in a virtual environment

    import pygame
    import time
    x = 0
    pygame.init()
    while x < 5:
    # Fenster initialisieren
    pygame.display.init()
    screen = pygame.display.set_mode((400,400), 0, 0)

    # Farbe für Hintergrund festlegen
    colour = (255,0,0)
    screen.fill(colour) # Hintergrundfarbe ist rot

    pygame.display.flip()
    x = x+1
    time.sleep(1)
    pygame.quit()

    Edited 2 times, last by lukas1 (September 2, 2024 at 3:39 PM).

  • lukas1 Das Programm braucht kein sudo! Bitte so etwas gar nicht erst angewöhnen.

    Selbst wenn das Programm ein rot ausgefülltes Fenster zeigen würde, wäre das so schnell wieder weg, dass man das kaum sehen könnte. Da fehlt etwas was das Programm am laufen hält. Und um die Änderungen am screen-Surface sichtbar zu machen fehlt noch ein entsprechender update() oder flip()-Aufruf.

    “Unfortunately forty years of programming experience has taught me that there's an essentially infinite supply of mistakes to make … your mistakes just get smarter most of the time.” — Steve Holden

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!