Python GUI Tkinter Buttons blinken bei laufender Akutalisierung?

2 Antworten

Das passiert aber andauernd, weswegen es besser ist, einfach laufend die GUI zu aktualisieren.

Bei einem Kartenspiel ändert sich der Zustand des Spielbretts je Zug. Also nicht in regelmäßigen Zeitintervallen im Millisekundenbereich.

Gibt es dafür noch eine andere Methode (Zum Beispiel PyGame anwenden)?

Für ein Kartenspiel wird tkinter ausreichen. Für Spiele, die tatsächlich durchgehend ihre Oberfläche ändern müssen (z.B. bei einem Jump 'n' Run) wäre es hingegen besser, dafür angepasstere Tools (Panda3D, PyGame, Ursina, Godot mit der Python-ähnlichen Skriptsprache GDScript) zu verwenden.


leoquestiongoon 
Beitragsersteller
 13.08.2024, 20:52

Danke erstmal für deine Antwort.
Nein, es ändert sich nicht pro Zug.
Bei dem Spiel handelt es sich um Dominion.
Es können innerhalb jedes einzelnen Zuges Karten genommen, gekauft, aus dem Spiel entsorgt, durch den Gegner aus der eigenen Hand entfernt werden etc.
Man kann jetzt natürlich bei jeder dieser einzelnen Aktionen in der entsprechenden Funktion hinzufügen, dass dann auch geupdated werden soll.
Aber es gibt sehr viele Ausnahmen.
Die anderen von dir vorgeschlagenen Tools werde ich mir mal anschauen.

0
regex9  14.08.2024, 02:03
@leoquestiongoon

Das wäre immernoch eine Spielmechanik, bei der sich die Spieloberfläche nur nach einer Aktion (z.B. Mausklick) ändern muss. Für so ein Spiel möchtest du allerdings sicherlich noch Animationen (z.B. Slideeffekte beim Bewegen von Karten), o.ä. einbauen. Da ist es lohnenswerter, eine der genannten Game-Engines/Bibliotheken zu nutzen.

0

Du wirfst 40 Mal pro Sekunde die ganze GUI weg und baust sie von Null an neu auf. Um das zu toppen, müsstest Du dabei jedes mal den Rechner neu starten!

Lege die Objekte einmalig an und führe periodisch nur self.my_frame.update() aus.