예제 #1
0
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()
예제 #2
0
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()
예제 #3
0
파일: SvgTest.py 프로젝트: ycaihua/fofix
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)
예제 #4
0
파일: SvgTest.py 프로젝트: ME7ROPOLIS/fofix
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)
예제 #5
0
파일: ResourceTest.py 프로젝트: htvu/fofix
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()
예제 #6
0
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()
예제 #7
0
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()
예제 #8
0
파일: DialogTest.py 프로젝트: ycaihua/fofix
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()
예제 #9
0
파일: SvgTest.py 프로젝트: ycaihua/fofix
    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)
예제 #10
0
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()
예제 #11
0
파일: SvgTest.py 프로젝트: ME7ROPOLIS/fofix
    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)
예제 #12
0
파일: SongTest.py 프로젝트: ycaihua/fofix
    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
예제 #13
0
    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)
예제 #14
0
    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()
예제 #15
0
    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()
예제 #16
0
 def setUp(self):
     config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini", setAsDefault = True)
     self.e = GameEngine(config)
예제 #17
0
 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()
예제 #18
0
 def setUp(self):
     config = Config.load(Version.PROGRAM_UNIXSTYLE_NAME + ".ini",
                          setAsDefault=True)
     self.e = GameEngine(config)
예제 #19
0
파일: ResourceTest.py 프로젝트: htvu/fofix
 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()