Beispiel #1
0
    def test_sprite_move_method(self):
        sprite1 = Sprite()
        sprite1.position = Vec2D(100, 200)
        sprite1.rect = pygame.Rect(1, 2, 50, 50)

        sprite2 = Sprite()
        sprite2.position = Vec2D(0, 0)
        sprite2.rect = pygame.Rect(-50, -10, 50, 10)

        sprite3 = Sprite()
        sprite3.position = Vec2D(0, 1)
        sprite3.rect = pygame.Rect(1, 2, 4, 4)

        sprite1.move((7, 9))
        self.assertEqual(sprite1.position, Vec2D(107, 209))
        self.assertEqual(sprite1.rect.topleft, Vec2D(8, 11))
        self.assertEqual(sprite1.rect.center, Vec2D(33, 36))
        self.assertEqual(sprite1.rect.width, 50)
        self.assertEqual(sprite1.rect.width, 50)

        sprite2.move((-100, 100))
        self.assertEqual(sprite2.position, Vec2D(-100, 100))
        self.assertEqual(sprite2.rect.topleft, Vec2D(-150, 90))
        self.assertEqual(sprite2.rect.center, Vec2D(-125, 95))
        self.assertEqual(sprite2.rect.width, 50)
        self.assertEqual(sprite2.rect.height, 10)

        sprite3.move(Vec2D(0, 0))
        self.assertEqual(sprite3.position, (0, 1))
        self.assertEqual(sprite3.rect.topleft, (1, 2))
        self.assertEqual(sprite3.rect.center, (3, 4))
        self.assertEqual(sprite3.rect.width, 4)
        self.assertEqual(sprite3.rect.height, 4)
Beispiel #2
0
    def test_scale_sprite(self):
        surfaces = [pygame.Surface((0, 0)), pygame.Surface((0, 298)),
                    pygame.Surface((10, 0)), pygame.Surface((13, 7))]

        sprite_list = Sprite()
        sprite_list.image = pygame.Surface((1000, 1000))
        sprite_list.rect = sprite_list.image.get_rect()
        sprite_list.rect.topleft = (7, 17)
        sprite_list.images = [(surface, surface.get_rect())
                              for surface in surfaces]

        sprite_dict = Sprite()
        sprite_dict.image = pygame.Surface((23, 29))
        sprite_dict.rect = sprite_dict.image.get_rect()
        sprite_dict.rect.topleft = (0, 0)
        sprite_dict.images = {key: (surfaces[key], surfaces[key].get_rect())
                              for key in range(len(surfaces))}

        sprite_list = scale_sprite(sprite_list, (0, 0))
        self.assertIsInstance(sprite_list, Sprite)
        self.assertIsInstance(sprite_list, Sprite)
        self.assertEqual(sprite_list.image.get_size(), (0, 0))
        self.assertEqual(sprite_list.rect, pygame.Rect(7, 17, 0, 0))
        for image, rect in sprite_list.images:
            self.assertEqual(image.get_size(), (0, 0))
            self.assertEqual(rect, pygame.Rect(0, 0, 0, 0))

        sprite_dict = scale_sprite(sprite_dict, (2, 1))
        self.assertIsInstance(sprite_dict, Sprite)
        self.assertIsInstance(sprite_dict, Sprite)
        self.assertEqual(sprite_dict.image.get_size(), (23 * 2, 29))
        self.assertEqual(sprite_dict.rect, pygame.Rect(0, 0, 23 * 2, 29))
        for key, tuple in sprite_dict.images.items():
            self.assertEqual(tuple[0].get_size(),
                             Vec2D(surfaces[key].get_size()) * Vec2D(2, 1))
            self.assertEqual(tuple[1], pygame.Rect(0, 0,
                             surfaces[key].get_size()[0] * 2,
                             surfaces[key].get_size()[1]))