Exemple #1
0
    def level_loop(self,
                   level=1,
                   cheat_lives=False,
                   cheat_weaps=False,
                   toLoad=False):
        '''Looper that ensures everything is set up for main(), while also allowing a loaded file to work correctly.'''

        pygame.mouse.set_visible(False)  ##turn the mouse back off

        if not toLoad:
            self.loader = levelLoader.LevelLoader(level)
            curr_score = 0
            curr_time = 0
            playerShip = None

            if cheat_lives:
                curr_lives = 100
            else:
                curr_lives = 3

            if cheat_weaps:
                playerShip = Entity.Player(
                    'master_lazer',
                    MISC_SPRITES_PATH.joinpath('SweetShip.png'), "arrows")

        else:
            pickled_goods = loadGame()
            ##[health, shield, weapon, bombs, score, lives, time_of_save, self.loader.levelNumber]
            playerShip = Entity.Player(
                pickled_goods[2], MISC_SPRITES_PATH.joinpath('SweetShip.png'),
                'arrows')
            playerShip.health = pickled_goods[0]
            playerShip.shield = pickled_goods[1]
            playerShip.bombs_remaining = pickled_goods[3]
            curr_score = pickled_goods[4]
            curr_lives = pickled_goods[5]
            curr_time = pickled_goods[6]
            self.loader = levelLoader.LevelLoader(pickled_goods[7])

        still_playing = True

        while still_playing:
            curr_lives, curr_score, next_level, playerShip = self.main(
                curr_lives, curr_score, playerShip, curr_time)
            is_next_level = self.loader.nextLevel()
            if not next_level:
                still_playing = False
            elif not is_next_level:
                still_playing = False
                self.victory()
                if self.hs_list.belongsOnList(curr_score):
                    name = self.add_to_hs(
                        'You set a new high score! Enter your initials!')
                    self.hs_list.add(name, curr_score)
                    self.hs_list.writeToFile(
                        EVENT_SCROLL_PATH.joinpath('highscores.asset'))
        self.loader = levelLoader.LevelLoader()
        pygame.mouse.set_visible(True)
Exemple #2
0
 def test_nextLevel(self):
     pygame.init()
     screen = pygame.display.set_mode((1, 1))
     screen.fill((0, 0, 0))
     pygame.display.set_caption('Testy mcTetsterson')
     loader = levelLoader.LevelLoader(0)
     level0 = loader.level
     self.assertTrue(loader.nextLevel())
     level1 = loader.level
     self.assertFalse(level0 == level1)
Exemple #3
0
    def test_getEndBehavior(self):
        pygame.init()
        screen = pygame.display.set_mode((1, 1))
        screen.fill((0, 0, 0))
        pygame.display.set_caption('Testy mcTetsterson')
        loader = levelLoader.LevelLoader(0)
        e = loader.getEndBehavior()

        self.assertTrue(e["boss"])
        self.assertEqual(e['time'], 80)
Exemple #4
0
 def test__init__(self):
     pygame.init()
     screen = pygame.display.set_mode((1, 1))
     screen.fill((0, 0, 0))
     pygame.display.set_caption('Testy mcTetsterson')
     loader = levelLoader.LevelLoader(0)
     events = loader.level
     e = loader.getEvents(0)
     self.assertEqual(os.path.basename(e['player'][0].imageFile),
                      "SweetShip.png")
     self.assertEqual(os.path.basename(e['background']), "starfield.png")
     self.assertEqual(e['player'][0].rect.x, 920)  #these come from library
     self.assertEqual(e['player'][0].rect.y, 860)
     self.assertEqual(e['player'][0].control_scheme, "arrows")
     self.assertEqual(e['player'][0].weapon.name, 'blue_lazer')
Exemple #5
0
    def test__getEvent__(self):
        pygame.init()
        screen = pygame.display.set_mode((1, 1))
        screen.fill((0, 0, 0))
        pygame.display.set_caption('Testy mcTetsterson')
        loader = levelLoader.LevelLoader(0)

        self.assertFalse(loader.getEvents("not a valid time"))
        sprite = loader.getEvents(3)
        self.assertFalse(loader.getEvents(3))  #should erase from loader

        #make sure proper enemy is created
        speed = sprite["enemy"][0].speed
        acceleration = sprite["enemy"][0].acceleration
        angle = sprite["enemy"][0].angle
        health = sprite["enemy"][0].health
        itemDropTable = sprite["enemy"][0].itemDropTable

        self.assertEqual(speed, 3)
        self.assertEqual(acceleration, 0)
        self.assertEqual(angle, 0)
        self.assertEqual(health, 1)
        self.assertEqual(itemDropTable, ('spitfire_powerup', 1))
Exemple #6
0
    def test_loader_setter(self):
        window = GUI.GUI()

        loader = levelLoader.LevelLoader()
        window.loader = loader
        self.assertEqual(window.loader, loader)

        flag = False
        try:
            window.loader = '42'
        except RuntimeError as rte:
            flag = True
        finally:
            self.assertTrue(flag)

        flag = True
        try:
            window.loader = None
        except RuntimeError as rte:
            flag = False
        finally:
            self.assertTrue(flag)

        pygame.quit()