Warum läuft meine PyGame-Anwendung überhaupt nicht?
Dec 12 2020
Ich habe ein einfaches Pygame-Programm:
#!/usr/bin/env python
import pygame
from pygame.locals import *
pygame.init()
win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")
Aber jedes Mal, wenn ich versuche, es auszuführen, bekomme ich Folgendes:
pygame 2.0.0 (SDL 2.0.12, python 3.8.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
Und dann passiert nichts. Warum kann ich dieses Programm nicht ausführen?
Antworten
4 Rabbid76 Dec 12 2020 at 19:11
Ihre Anwendung funktioniert gut. Sie haben jedoch keine Anwendungsschleife implementiert:
#!/usr/bin/env python
import pygame
from pygame.locals import *
pygame.init()
win = pygame.display.set_mode((400,400))
pygame.display.set_caption("My first game")
clock = pygame.time.Clock()
run = True
while run:
clock.tick(60)
# handle events
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# update game objects
# [...]
# clear display
win.fill((0, 0, 0))
# draw game objects
# [...]
# update display
pygame.display.flip()
pygame.quit()
Die typische PyGame-Anwendungsschleife muss:
- Behandeln Sie die Ereignisse entweder pygame.event.pump()oder pygame.event.get().
- Aktualisieren Sie die Spielzustände und Positionen von Objekten in Abhängigkeit von den Eingabeereignissen und der Zeit (bzw. den Frames).
- Löschen Sie die gesamte Anzeige oder zeichnen Sie den Hintergrund
- Zeichne die gesamte Szene (
blit
alle Objekte) - Aktualisieren Sie die Anzeige entweder pygame.display.update()oderpygame.display.flip()
Siehe auch Ereignis- und Anwendungsschleife