pygame: clocktick()

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
ChristianN
User
Beiträge: 9
Registriert: Mittwoch 3. Februar 2021, 16:51

Hi Experten,

eine Verständnisfrage, ich finde im Netz keine Antwort, vielleicht fehlen mir die Begriffe.

jeden clocktick() wird das Bild neu aufgebaut. also clock.tick(30) heißt 30 frames pro sekunde, also ungefähr alle 33ms.
Wenn in der Scheife eine Routine ist, die länger dauert, z.B winsound.Beep(3200, 900), dann stottert das Bild. Wie kann ich es flüssig hinbekommen ? Oder hab ich einen Denkfehler ?

Christian
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du hast eine Denkfehler. clocktick kann das Raum-Zeitkontinuum nicht umkrempeln, und nach einer Operation, die länger als ein Frame dauert, wieder die verlorene Zeit gutmachen. Alles, was das tut, ist zu warten, bis der nächste Frame dran wäre, wenn die render-Zeit KLEINER als 33ms sind. Und sonst garnicht warten.

Dein Problem ist winsound. Das ist ungeeignet. Weil es wartet, bis der Ton abgespielt wird. Benutz die pygame-eigenen Audio-Funktionen. Dann sollte es klappen.
Antworten