class ViewTest(unittest.TestCase): def testTransition(self): l1 = TestLayer() l2 = TestLayer() l3 = TestLayer() v = self.e.view v.pushLayer(l1) v.pushLayer(l2) v.pushLayer(l3) while l3.visibility < 1.0: self.e.run() v.popLayer(l3) v.popLayer(l2) v.popLayer(l1) while l1 in v.layers or l2 in v.layers or l3 in v.layers: self.e.run() assert not v.layers def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config) def tearDown(self): self.e.quit()
class ViewTest(unittest.TestCase): def testTransition(self): l1 = TestLayer() l2 = TestLayer() l3 = TestLayer() v = self.e.view v.pushLayer(l1) v.pushLayer(l2) v.pushLayer(l3) while l3.visibility < 1.0: self.e.run() v.popLayer(l3) v.popLayer(l2) v.popLayer(l1) while l1 in v.layers or l2 in v.layers or l3 in v.layers: self.e.run() assert not v.layers def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) def tearDown(self): self.e.quit()
class SvgTest(unittest.TestCase): def testRendering(self): self.svg.transform.translate(256, 256) self.svg.transform.rotate(3.141592) self.svg.draw() self.e.video.flip() def testRenderToTexture(self): scale = 4 fullwidth, fullheight = 512, 512 width, height = int(fullwidth / scale), int(fullheight / scale) t = Texture() self.e.svg.setProjection((0, 0, fullwidth, fullheight)) glViewport(0, 0, width, height) glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) self.svg.transform.translate(width * scale / 2, height * scale / 2) self.svg.transform.rotate(3.141592) self.svg.draw() glViewport(0, 0, fullwidth, fullheight) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluOrtho2D(0.0, 1.0, 0.0, 1.0) glMatrixMode(GL_MODELVIEW) glLoadIdentity() t.bind() glEnable(GL_TEXTURE_2D) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) glClear(GL_COLOR_BUFFER_BIT) glColor3f(1.0, 1.0, 1.0) glBegin(GL_TRIANGLE_STRIP) glTexCoord2f(0.0, 0.0) glVertex2f(0.0, 0.0) glTexCoord2f(1.0, 0.0) glVertex2f(1.0, 0.0) glTexCoord2f(0.0, 1.0) glVertex2f(0.0, 1.0) glTexCoord2f(1.0, 1.0) glVertex2f(1.0, 1.0) glEnd() self.e.video.flip() import time time.sleep(2) def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
class SvgTest(unittest.TestCase): def testRendering(self): self.svg.transform.translate(256, 256) self.svg.transform.rotate(3.141592) self.svg.draw() self.e.video.flip() def testRenderToTexture(self): scale = 4 fullwidth, fullheight = 512, 512 width, height = int(fullwidth / scale), int(fullheight / scale) t = Texture() self.e.svg.setProjection((0, 0, fullwidth, fullheight)) glViewport(0, 0, width, height) glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) self.svg.transform.translate(width * scale / 2, height * scale / 2) self.svg.transform.rotate(3.141592) self.svg.draw() glViewport(0, 0, fullwidth, fullheight) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluOrtho2D(0.0, 1.0, 0.0, 1.0) glMatrixMode(GL_MODELVIEW) glLoadIdentity() t.bind() glEnable(GL_TEXTURE_2D) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) glClear(GL_COLOR_BUFFER_BIT) glColor3f(1.0, 1.0, 1.0) glBegin(GL_TRIANGLE_STRIP) glTexCoord2f(0.0, 0.0) glVertex2f(0.0, 0.0) glTexCoord2f(1.0, 0.0) glVertex2f(1.0, 0.0) glTexCoord2f(0.0, 1.0) glVertex2f(0.0, 1.0) glTexCoord2f(1.0, 1.0) glVertex2f(1.0, 1.0) glEnd() self.e.video.flip() import time time.sleep(2) def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
class ResourceTest(unittest.TestCase): def testAsynchLoad(self): self.r = Resource() self.e.addTask(self.r) self.r.load(self, "result", lambda: loader()) while not self.result: self.e.run() assert self.result == 0xDADA def testSynchLoad(self): self.r = Resource() self.e.addTask(self.r) assert self.r.load(self, "result2", loader, synch=True) == 0xDADA assert self.result2 == 0xDADA def testAsynchLoadSeries(self): self.r = Resource() self.e.addTask(self.r) for i in range(10): self.r.load(self, "result%d" % i, loader) while not self.result9: self.e.run() assert self.result9 == 0xDADA def testCallback(self): self.r = Resource() self.e.addTask(self.r) self.quux = None def loaded(r): self.quux = r self.r.load(self, "fuuba", loader, onLoad=loaded).join() while not self.fuuba: self.e.run() assert self.fuuba == self.quux def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine() def tearDown(self): self.e.quit()
class ResourceTest(unittest.TestCase): def testAsynchLoad(self): self.r = Resource() self.e.addTask(self.r) self.r.load(self, "result", lambda: loader()) while not self.result: self.e.run() assert self.result == 0xdada def testSynchLoad(self): self.r = Resource() self.e.addTask(self.r) assert self.r.load(self, "result2", loader, synch=True) == 0xdada assert self.result2 == 0xdada def testAsynchLoadSeries(self): self.r = Resource() self.e.addTask(self.r) for i in range(10): self.r.load(self, "result%d" % i, loader) while not self.result9: self.e.run() assert self.result9 == 0xdada def testCallback(self): self.r = Resource() self.e.addTask(self.r) self.quux = None def loaded(r): self.quux = r self.r.load(self, "fuuba", loader, onLoad=loaded).join() while not self.fuuba: self.e.run() assert self.fuuba == self.quux def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine() def tearDown(self): self.e.quit()
class DialogTestInteractive(unittest.TestCase): def testGetTest(self): text = getText(self.e, "Please enter your name:", "Wario") def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config) def tearDown(self): self.e.quit()
class DialogTestInteractive(unittest.TestCase): def testGetTest(self): text = getText(self.e, "Please enter your name:", "Wario") def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) def tearDown(self): self.e.quit()
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
class MenuTest(unittest.TestCase): def testMenuNavigation(self): m = Menu(self.e, rootMenu) self.e.view.pushLayer(m) def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config) def tearDown(self): self.e.quit()
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config) self.e.loadImgDrawing(self, "svg", "mfhlogo.png") while not self.svg: self.e.run() glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
def testLoading(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) e = GameEngine(config) infoFile = e.resource.fileName("tutorials", "bangbang", "song.ini") guitarFile = e.resource.fileName("tutorials", "bangbang", "guitar.ogg") songFile = e.resource.fileName("tutorials", "bangbang", "song.ogg") noteFile = e.resource.fileName("tutorials", "bangbang", "notes.mid") song = Song(e, infoFile, guitarFile, songFile, None, noteFile) assert int(song.bpm) == 120
def testSaving(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) e = GameEngine(config) # Make a temp copy tmp = "songtest_tmp" files = ["song.ini", "guitar.ogg", "song.ogg", "notes.mid"] try: os.mkdir(tmp) for f in files: shutil.copy(e.resource.fileName("tutorials", "bangbang", f), tmp) infoFile = os.path.join(tmp, "song.ini") guitarFile = os.path.join(tmp, "guitar.ogg") songFile = os.path.join(tmp, "song.ogg") noteFile = os.path.join(tmp, "notes.mid") song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events1 = song.track[0].getAllEvents() song.save() song = Song(e, infoFile, guitarFile, songFile, None, noteFile) events2 = song.track[0].getAllEvents() notes1 = [(time, event) for time, event in events1 if isinstance(event, Note)] notes2 = [(time, event) for time, event in events2 if isinstance(event, Note)] for i, event in enumerate(zip(notes1, notes2)): t1, n1 = event[0] t2, n2 = event[1] if "-v" in sys.argv: print "%8d. %.3f + %.3f\t%2d\t %.3f + %.3f\t%2d" % ( i, t1, n1.length, n1.number, t2, n2.length, n2.number) # Allow 2ms of rounding error assert abs(t1 - t2) < 2 assert abs(n1.length - n2.length) < 2 assert n1.number == n2.number finally: # Load another song to free the copy pygame.mixer.music.load( e.resource.fileName("tutorials", "bangbang", "guitar.ogg")) shutil.rmtree(tmp)
def testNetworking(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) e1 = GameEngine(config) e1.startServer() session1 = e1.connect("localhost") session2 = e1.connect("localhost") while not session1.isConnected() or not session2.isConnected(): e1.run() session1.world.createPlayer("mario") session2.world.createPlayer("luigi") for i in range(10): e1.run() assert len(e1.server.world.players) == 2 assert len(session1.world.players) == 2 assert len(session2.world.players) == 2 session3 = e1.connect("localhost") for i in range(10): e1.run() assert len(session3.world.players) == 2 session1.disconnect() for i in range(10): e1.run() assert len(e1.server.world.players) == 1 assert len(session2.world.players) == 1 e1.quit()
def testNetworking(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) e1 = GameEngine(config) e1.startServer() session1 = e1.connect("localhost") session2 = e1.connect("localhost") while not session1.isConnected() or not session2.isConnected(): e1.run() session1.world.createPlayer("mario") session2.world.createPlayer("luigi") for i in range(10): e1.run() assert len(e1.server.world.players) == 2 assert len(session1.world.players) == 2 assert len(session2.world.players) == 2 session3 = e1.connect("localhost") for i in range(10): e1.run() assert len(session3.world.players) == 2 session1.disconnect() for i in range(10): e1.run() assert len(e1.server.world.players) == 1 assert len(session2.world.players) == 1 e1.quit()
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) self.e = GameEngine(config)
def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine()
def setUp(self): config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) self.e = GameEngine(config)
def setUp(self): Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault=True) # Resource expects game_priority to be an integer, # Config won't know unless we define it as such. Config.define("performance", "game_priority", int, 2) self.e = GameEngine()