class SceneStackTests(unittest.TestCase):

    def setUp(self):
        self.stack = SceneStack()
        self.stack.append( SceneA() )
        self.stack.append( SceneB() )
        self.stack.append( SceneA() )

    def test_stack_sequence(self):
        self.assertEqual(self.stack.head().get_number(), 0) # First Scene A
        self.stack.next()

        self.assertEqual(self.stack.head().get_number(), 10) # Scene B
        self.stack.next()

        self.assertEqual(self.stack.head().get_number(), 0) # Second Scene A
        self.stack.next()

    def test_update(self):
        dt = 1 # meaningless `dt` value

        self.stack.head().update(dt)
        self.assertEqual(self.stack.head().get_number(), 1)
        self.stack.next()

        self.stack.head().update(dt)
        self.assertEqual(self.stack.head().get_number(), 11) # Scene B
 def setUp(self):
     self.stack = SceneStack()
     self.stack.append( SceneA() )
     self.stack.append( SceneB() )
     self.stack.append( SceneA() )
Example #3
0
def main():
    print "Hello, World!"

    pygame.init()
    screen = pygame.display.set_mode( conf.window.dimensions )

    stack = SceneStack()
    #stack += [ splash.Splash(), menu.Menu() ]
    stack.append( menu.Menu() )

    run = True
    while (len(stack)):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                break

            stack.head().process_event(event)

        if not run: # are we still running?
            break

        stack.head().update(1)
        try:
            screen.fill( conf.clear_color )
            stack.head().render(screen)

            pygame.display.flip()

        except IndexError:
            pass # no head, so I guess no more scenes on stack

        pygame.time.delay(10)

        if stack.head().has_ended() is True:
            stack.next()

    print "Goodbye!"