In Python Ton und anderer Befehl gleichzeitig ausführen?
Moin Leute,
wir schreiben gerade ein Programm mit Python , wo wir einen Ball von einem Schläger abprallen lassen und sobald er einen Block trifft soll das Programm einen Ton abspielen. Jetzt ist aber das Problem aufgetreten, dass das Programm, solange der Ton abgespielt wird, pausiert wird. Wir wollten Euch fragen, wie man diese beiden Vorgänge gleichzeitig abspielen kann?
Quellcode:
class Block:
def __init__(self, x, y, farbe, leben):
global canvas, STEINLAENGE, STEINBREITE
self.x = x
self.y = y
self.farbe = farbe
self.leben = leben
self.rec = canvas.create_rectangle(self.x-STEINLAENGE/2, self.y, self.x+STEINLAENGE/2, self.y+STEINBREITE, fill=self.farbe)
def move(self, x ,y):
global canvas, STEINLAENGE, STEINBREITE
self.x = x
self.y = y
canvas.coords(self.rec, self.x-SCHLAEGERLAENGE/2, self.y, self.x+SCHLAEGERLAENGE/2, self.y+SCHLAEGERBREITE)
def Bloecke(self, ballx, bally):
global schlaege, bewegungx, bewegungy, STEINBREITE, STEINLAENGE
if (bally + RADIUS >= self.y) and (bally - RADIUS <= self.y + STEINBREITE):
if(ballx > self.x - (STEINLAENGE/2)) and (ballx < self.x + (STEINLAENGE/2)):
self.leben = self.leben-1
bewegungy = bewegungy * -1
bewegungx = bewegungx * 1
schlaege += 1
canvas.dchars(schlaegecounter, 0, 99999999)
canvas.insert(schlaegecounter, 0, schlaege)
print("gh")
winsound.PlaySound("", winsound.SND_ALIAS)#Hier wird gesagt, dass sobald der Ball auf die Blöcke stößt, der Ball abprallt, und verschoben wird. Hierbei entsteht das Problem da der Ball unterbricht, um den Ton abzuspielen
if self.leben < 1:
self.move(10000000000000,1000000000000)
1 Antwort
Probier es mal mit:
winsound.PlaySound('sound.wav', winsound.SND_FILENAME | winsound.SND_ASYNC)
Mit SND_ASYNC sollte der Ton unabhängig vom laufenden Code ausgegeben werden.
Vielen Dank für Eure schnelle Antwort, werden es nachher nochmal ausprobieren danke im vorraus!!