Ejemplo n.º 1
0
    def test_sprite_flip_method(self):
        surfaces = [load_image("assets/buttons/button1.png"),
                    load_image("assets/buttons/button2.png")]

        sprite_list = Sprite()
        sprite_list.images = [item for item in surfaces]

        sprite_dict = Sprite()
        sprite_dict.images = {key: surfaces[key] for key in
                              range(len(surfaces))}

        sprite_list.flip(1, 0)
        for image, rect in sprite_list.images:
            index = sprite_list.images.index((image, rect))
            self.assertEqual(rect, surfaces[index][1])

            width, height = image.get_size()
            pixel_array_base = pygame.PixelArray(surfaces[index][0])
            pixel_array_flip = pygame.PixelArray(image)
            for column in range(width - 1, -1, -1):
                for row in range(height):
                    self.assertEqual(pixel_array_base[column, row],
                                     pixel_array_flip[width - 1 - column, row])

        sprite_dict = Sprite()
        sprite_dict.images = {key: surfaces[key]
                              for key in range(len(surfaces))}

        sprite_dict.flip(0, 1)
        for key in sprite_dict.images:
            image, rect = sprite_dict.images[key]
            self.assertEqual(rect, surfaces[key][1])

            width, height = image.get_size()
            pixel_array_base = pygame.PixelArray(surfaces[key][0])
            pixel_array_flip = pygame.PixelArray(image)
            for column in range(width):
                for row in range(height - 1, -1, -1):
                    self.assertEqual(pixel_array_base[column, row],
                                     pixel_array_flip[column,
                                                      height - 1 - row])

        sprite_with_image = Sprite()
        sprite_with_image.image, sprite_with_image.rect = surfaces[0]

        sprite_with_image.flip(1, 1)
        self.assertEqual(sprite_with_image.rect, surfaces[0][1])
        width, height = sprite_with_image.image.get_size()
        pixel_array_base = pygame.PixelArray(surfaces[0][0])
        pixel_array_flip = pygame.PixelArray(sprite_with_image.image)
        for column in range(width - 1, -1, -1):
            for row in range(height - 1, -1, -1):
                self.assertEqual(pixel_array_base[column, row],
                                 pixel_array_flip[width - 1 - column,
                                                  height - 1 - row])