def __init__(self, shadowdiv, gunCtrl, parent=None, **kwargs): super(PlayerAircraft, self).__init__('spitfire', shadowdiv, parent, **kwargs) self.__gunCtrl = gunCtrl self.__bullets = [Bullet(parent=self.parent) for i in xrange(10)] self.__engineSnd = avg.SoundNode(href='flySound.mp3', loop=True, parent=self) self.__bulletSnd = avg.SoundNode(href='bulletSound.mp3', volume=0.75, parent=self) self.__maxX, self.__maxY = self.parent.size - self.size
def onInit(self): self.mediadir = getMediaDir(__file__) self.__gameMusic = avg.SoundNode(href='Fire_Birds.mp3', loop=True, volume=0.75, parent=self) self.__scrollingBg = ScrollingBackground(self) self.__shadowDiv = avg.DivNode(parent=self) self.__gameDiv = avg.DivNode(size=self.size, parent=self) self.__guiDiv = avg.DivNode(parent=self) bg = avg.ImageNode(href='gui_frame.png', parent=self.__guiDiv) self.__guiDiv.pos = (0, self.height - bg.height) self.__lifeCounter = LifeCounter(pos=(8, 12), parent=self.__guiDiv) gunCtrl = GunControl(pos=(300, 54), parent=self.__guiDiv) self.__scoreCounter = ScoreCounter(pos=(1142, 54), parent=self.__guiDiv) self.__enemies = [] for i in xrange(2): self.__createEnemy() self.__player = PlayerAircraft(self.__shadowDiv, gunCtrl, parent=self.__gameDiv) enemyMask = avg.Bitmap(self.mediadir + '/enemy.gif') self.__playerCollisionDetector = collisiondetector.CollisionDetector( enemyMask, avg.Bitmap(self.mediadir + '/spitfire.gif')) self.__bulletCollisionDetector = collisiondetector.CollisionDetector( enemyMask, avg.Bitmap(self.mediadir + '/bullet.gif')) self.__keyStates = dict.fromkeys(PlayerAircraft.ACTION_KEYS, False) self.__frameHandlerId = None self.__spawnTimeoutId = None self.__gameMusic.play() self.__start() player.subscribe(player.KEY_DOWN, self.__onKeyDown) player.subscribe(player.KEY_UP, self.__onKeyUp)
def testSoundInfo(self): def checkInfo(): node.pause() self.assertEqual(node.getAudioCodec(), "pcm_s16le") self.assertEqual(node.getAudioSampleRate(), 44100) self.assertEqual(node.getNumAudioChannels(), 2) self.assertEqual(node.getCurTime(), 0) self.assertEqual(node.duration, 2000) def checkExceptions(): node = avg.SoundNode(href="44.1kHz_16bit_stereo.wav") self.assertRaises(avg.Exception, node.getAudioCodec) self.assertRaises(avg.Exception, node.getAudioSampleRate) self.assertRaises(avg.Exception, node.getNumAudioChannels) def checkVideoFile(): node = avg.SoundNode(href="mpeg1-48x48.mov", parent=root) self.assertRaises(avg.Exception, node.pause) root = self.loadEmptyScene() node = avg.SoundNode(href="44.1kHz_16bit_stereo.wav", parent=root) checkInfo() checkExceptions() self.start(False, (checkInfo, checkExceptions, checkVideoFile, ))
def testSoundFile(filename): def setVolume(volume): node.volume = volume def testGetVolume(volume): self.assertAlmostEqual(node.volume, volume) root = self.loadEmptyScene() node = avg.SoundNode(href=filename, parent=root) self.start(False, (lambda: setVolume(0.5), lambda: testGetVolume(0.5), lambda: node.play(), None, lambda: node.stop(), lambda: node.play(), lambda: node.pause(), lambda: node.play(), lambda: setVolume(0.5), lambda: testGetVolume(0.5), lambda: node.pause(), lambda: node.stop(), lambda: setVolume(0.3), lambda: testGetVolume(0.3), lambda: node.pause() ))
def testLoop(self): def onEOF(): self.eof = True def onFrame(): if self.eof: if not threaded: self.compareImage("testVideoLoop") player.stop() for audio, threaded in [(False, False), (False, True), (True, True)]: self.eof = False if audio: player.setFakeFPS(-1) else: player.setFakeFPS(25) root = self.loadEmptyScene() if audio: node = avg.SoundNode(parent=root, loop=True, href="48kHz_16bit_mono.wav") else: node = avg.VideoNode(parent=root, loop=True, fps=25, size=(96,96), threaded=threaded, href="mpeg1-48x48.mov") node.subscribe(avg.Node.END_OF_FILE, onEOF) node.play() player.subscribe(player.ON_FRAME, onFrame) player.play()
def __init__(self, shadowdiv, parent=None, **kwargs): super(EnemyAircraft, self).__init__('enemy', shadowdiv, parent, **kwargs) self.publish(EnemyAircraft.ESCAPED) self.__destroySnd = avg.SoundNode(href='enemyDeath.mp3', volume=2.0, parent=self) self._hide()
def testSoundSeek(self): player.setFakeFPS(-1) player.volume = 0 root = self.loadEmptyScene() soundNode = avg.SoundNode(parent=root, href="44.1kHz_16bit_stereo.wav") soundNode.play() soundNode.seekToTime(500) self.start(False, (None, lambda: soundNode.seekToTime(200), ))
def initSounds(self): self.deniedSound = avg.SoundNode(href="denied.mp3", loop=False, volume=1.0, parent=self.rootNode) self.skillUnlockedSound = avg.SoundNode(href="skillUnlocked.mp3", loop=False, volume=1.0, parent=self.rootNode) self.gameStartSound = avg.SoundNode(href="gameStart.mp3", loop=False, volume=1.0, parent=self.rootNode) self.rotateSound = avg.SoundNode(href="rotate.wav", loop=False, volume=1.0, parent=self.rootNode) self.victorySound = avg.SoundNode(href="victory.mp3", loop=False, volume=1.0, parent=self.rootNode) self.thunderSound = avg.SoundNode(href="thunder.wav", loop=False, volume=1.0, parent=self.rootNode) self.roundSound = avg.SoundNode(href="round.mp3", loop=False, volume=1.0, parent=self.rootNode) self.rainSound = avg.SoundNode(href="rain.mp3", loop=False, volume=1.0, parent=self.rootNode) self.bombSound = avg.SoundNode(href="bomb.wav", loop=False, volume=1.0, parent=self.rootNode) self.cashSound = avg.SoundNode(href="cash.mp3", loop=False, volume=1.0, parent=self.rootNode)
def onInit(self): self._node = avg.SoundNode(parent=self, href=self._audioFName) self._node.play() self._words = avg.WordsNode(parent=self, pos=(10, 22), fontsize=10)
def testSoundEOF(self): player.setFakeFPS(-1) player.volume = 0 node = avg.SoundNode(href="44.1kHz_16bit_mono.wav") self.testEOF(node)
def openSound(): node = avg.SoundNode(href="44.1kHz_16bit_6Chan.ogg", parent=root) self.assertRaises(avg.Exception, node.play)
def checkVideoFile(): node = avg.SoundNode(href="mpeg1-48x48.mov", parent=root) self.assertRaises(avg.Exception, node.pause)
def checkExceptions(): node = avg.SoundNode(href="44.1kHz_16bit_stereo.wav") self.assertRaises(avg.Exception, node.getAudioCodec) self.assertRaises(avg.Exception, node.getAudioSampleRate) self.assertRaises(avg.Exception, node.getNumAudioChannels)
def openSound(): node = avg.SoundNode(href="44.1kHz_16bit_6Chan.ogg", parent=root) self.assertRaises(RuntimeError, node.play)
def checkVideoFile(): node = avg.SoundNode(href="mpeg1-48x48.mov", parent=root) self.assertRaises(RuntimeError, node.pause)