Seite 1 von 1
PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 16. Juni 2010, 11:32
von majinv
Sers zusammen,
ich hab gelesen, dass ich um mit pygame mehrere Fenster erstellen zu können, mehrere Threads brauche...
allerdings mag der Compiler nicht das, was ich schreibe...
ich habe eine datei, in der ich mir jeweils eine instanz der anderen beiden klassen mache...
Code: Alles auswählen
import threading
from node import Mic
from node import Mic2
from shared.models import Logger
def startNode():
logger = Logger.Logger()
mic = Mic.Mic()
logger.log("Initscript", "Mic initiated...")
mic2 = Mic2.Mic2()
logger.log("Initscript", "Mic2 initiated...")
Die beiden Klassen die ich aufrufe haben jeweils den thread kopf, der vorgeschrieben ist...
und beide erzeugen ein fenster... allerdings, wird das eine vom anderen überschrieben... und ich kann mir nicht erklären, warum das so ist...
kann mir da jemand helfen?
Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 23. Juni 2010, 16:08
von majinv
offensichtlich nicht... oder keiner hatte lust
ich habs anderes gelöst und für die die eine ähnliche methode suchen:
Code: Alles auswählen
def whileTrue(self):
...
while self._running:
...
if self._runningSoundLevel == True:
self.soundLevel(end_pos)
if self._runningSoundLevel2 == True:
self.soundLevel2(start_pos, end_pos, p)
#Update screen
pygame.display.flip()
def soundLevel(self, end_pos):
...
def soundLevel2(self, start_pos, end_pos, p):
...
somit werden dann einfach 2 surfaces in einem fenster erschaffen und man braucht keine 2 fenster mehr...
beide werden mit den selben daten versorgt und aktualisiert...
Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 23. Juni 2010, 19:08
von EyDu
Hallo.
Dir kann wahrscheinlich niemand helfen, da du keinen relevanten Code zeigst. Das ist alles nur sehr allgemeines Zeugs.
Ich habe aber noch zwei Tips für dich:
Und überlege dir mal, warum du das Ergebnis von "self._runningSoundLevel == True" nicht gegen "True" testest und was an deiner Zeile überflüssig ist
Edit: Und natürlich möchtest du noch einen Blick in PEP8 werfen.
Sebastian
Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 30. Juni 2010, 12:36
von majinv
naja gut... was ist denn für dich relevanter code?

ich will ja nichts spezifisches... sondern eigentlich nur 2 instanzen von pygame erzeugen um 2 fenster zu erhalten...
da braucht ja niemand code... entweder es geht... oder es geht nicht...

aber das ist ja erstmal hinfällig...
was den coding style angeht, da hast du recht... ich hab noch 8 spaces statt 4

... ich behaupte einfach mein code sei uralt

aber recht hast du dennoch
deinen tip mit dem if-statement allerdings verstehe ich nicht...
ohne es getestet zu haben, meinst du das ich '== True' weglassen kann, weils ja eh ein boolean ist?
und warum teste ich es genau nicht gegen True?
Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 30. Juni 2010, 13:50
von rads
@majinv
ich denke er meint das
auch durch
ausgedrückt werden kann. Nach meiner kleinen Meinung aber geschmacksache und manche mögen es wenn der vergleich leichter lesbar ist. Oh jetzt fang ich mir wieder Schläge ein

Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 30. Juni 2010, 14:03
von majinv
hmmm aber laut konvention, wird je ein leerzeichen zwischen operanden gesetzt...

und das untere hab ich ja selbst angesprochen...
mir scheint aber, dass er auf etwas anderes hinauswollte... für mich liest sich das zumindest so...
Re: PyGame mehrere Fenster = mehrere Threads?
Verfasst: Mittwoch 30. Juni 2010, 15:45
von Leonidas
Wenn ich mich richtig erinnere kann SDL nicht mehr als ein Fenster, da helfen auch Threads nicht.