Ich habe einen recht einfachen Skript aber trotzdem ruckelt es sehr stark. Dabei ist mir aufgefallen, dass ohne Fullscreen alles flüssig läuft, sobald ich aber Fullscreen anschalte fängt die Maus an zu ruckeln.
Hier der Skript.
Und die Frage ist nun? Es läuft halt bei Deiner Hard- und Softwarekombination im Vollbild nicht flüssig. Da müssen, wenn's hochkommt 237 MiB/s Daten zur Grafikkarte gepumpt werden.
Anmerkung zum Quelltext: Die Abkürzungen, das neubinden von "Konstanten", und die Art wie die Ereignisse abgearbeitet werden, sind -- äh -- gewöhnungsbedürftig.
Ich meine gehört zu haben, dass man über DirectX eine bessere Performance kriegen müsste. Des weiteren habe ich bei einer Suche im Internet gesehen, dass Python mit DirectX zusammenarbeiten kann. Erstmal stimmt das oder bin ich auf einem falschen Weg? Könnte mir vielleicht jemand einen Link geben auf dem die (wichtigsten) Befehle aufgelistet sind. Wäre sehr dankbar.
BlackJack hat geschrieben:Anmerkung zum Quelltext: Die Abkürzungen, das neubinden von "Konstanten", und die Art wie die Ereignisse abgearbeitet werden, sind -- äh -- gewöhnungsbedürftig.
Da kommt mir aus einer Vorlesung doch glatt die "variable Lernkonstante" wieder in den Sinn ^^
@min: Ohne dir zu nahe treten zu wollen, aber von dem (wenigen) was ich bisher von dir gesehen habe, würde ich die Finger von DirectX lassen. Das ist noch eine Nummer zu groß. An deiner Stelle würde ich mich erstmal vernünftig in Python und PyGame einarbeiten.
Stimmt das Script ist überhaupt nicht gelungen. Nicht nur das sondern eigentlich alle bisher, da sie meistens nur Schnipsel sind. Auf der anderen Seite würde ich mir gerne einer neuen Herausforderung stellen (Learning by Doing).
Dann schau dir doch die Seite und die DirectX Dokumentation einfach mal an. Die Funktionalität ist aber wirklich sehr low-level und nicht annähernd so komfortabel wie pygame.
Ich verstehe es, dass du so überzeugt bist von Pygame. Aber mit den Performanceproblemen mit denen ich kämpfen muss weicht die Euphorie. Aber an der Grafikkarte oder anderer Hardware kann das eher nicht liegen. Bin über jede Hilfe froh. Es muss nicht DirectX sein.
@min: Musst Du denn wirklich diesen ganzen grossen Bildschirm ständig neuzeichnen? Reicht nicht auch eine kleinere Auflösung? Insbesondere beim Vollbild. Wie sieht's denn aus, wenn Du Hardwarebeschleunigung anforderst? Schau Dir mal die Doku zu `display.set_mode()` an, was man da für Flags übergeben kann.
Danke für den Tipp. Ich werde ihm vorerst nachgehen. Doch erlaube mir noch eine Frage: wegen den Flags: gibt es eine andere Seite neben der offiziellen Pygame und zu OpenGL, ich wäre sehr dankbar über einen Link zu einem Tutorial für Anfänger.
Zumindest bei DirectPython und PyOpenGL kannst du dich an die DirectX und OpenGL Dokumentationen halten. Entsprechend kannst du auch die ganze Menge der umherschwirrenden Tutorials verwenden. Wohl meist in C oder C++. Das sind beides wirklich nur Wrapper, mit eben mal an einem Abend einarbeiten wird das sicher nichts. Und auf der Pygame Seite sind doch nun wirklich genug Tutorials und Dokumentation.
Leider noch eine Frage: Wo könnte man ablesen welche Bildschirmauflösung Pygame bzw. der Monitor annimmt? Es geht mir dabei darum, dass keine scwarzen Streifen Links, Rechts, Oben und Unten entstehen.