well, tought since i want ackground music in my game, let’s make a radio:
but unforunantly, it doesn’t work
import direct.directbase.DirectStart
from direct.showbase.DirectObject import DirectObject
class World(DirectObject):
def __init__(self):
self.curPlay = 0
self.curLoopPlay = 0
self.killm = 1
self.killl = 1
bgs = []
plm = []
bgs[0] = loader.loadSfx("audio/bg1.mp3")
bgs[1] = loader.loadSfx("audio/bg2.mp3")
bgs[2] = loader.loadSfx("audio/bg3.mp3")
plm[0] = plm[1] = loader.loadSfx("audio/loop1.mp3")
def bgm(self, task):
total = bgs[1].status() + bgs[2].status() + bgs[3].status()
if total == 3:
self.curPlay = self.curPlay + 1
if self.curPlay > 2:
self.curPlay = 0
bgs[self.curPlay].play()
return task.cont
def dbgm(self):
if self.killm == 1:
taskMgr.remove(bgm)
self.killm = 2
elif self.killm == 2:
taskMgr.add(bmg, "bgm",extraArgs=[self],appendTask=True)
else:
self.killm == 1
def plm(self, task):
totall = plm[1].status() + plm[2].status()
if totall == 2:
self.curLoopPlay + 1
if self.curLoopPlay > 1:
self.curLoopPlay = 0
plm[self.curLoopPlay].play()
return task.cont
def dplm():
if self.killl == 1:
taskMgr.remove(plm)
self.killl = 2
elif self.killl == 2:
taskMgr.add(plm, "plm",extraArgs=[self],appendTask=True)
else:
self.killl == 1
self.accept("p", dbgm, [self])
self.accept("o", dplm, [self])
w=World()
run()