Пример #1
0
class SpriteTests(TestCase):

    def setUp(self):
        self.factory = TEST_GAME_CONTEXT.tile_factory
        self.tile = self.factory.get('g')
        self.frame = Frame(TEST_GAME_CONTEXT.screen, Rect(40, 50, 160, 160))
        self.sprite = Sprite(self.frame, self.tile, Vector(1, 1), speed=2)

    def test_sprite_pos(self):
        """Sprite has a position."""
        sprite = Sprite(self.frame, self.factory.get('g'), pos=Vector(4, 3))
        self.assertEqual(sprite.pos.x, 4)
        self.assertEqual(sprite.pos.y, 3)

    def move(self):
        """Moves sprite until movement terminates."""
        while self.sprite.is_moving():
            self.sprite.move()
            self.frame.clear()
            self.sprite.draw()
            pygame.display.update()
            time.sleep(SHORT_DELAY)

    @showdoc
    def test_move_sprite(self):
        """Sprite moves east, then southeast."""
        self.sprite.add_move(RIGHT)
        self.sprite.add_move(DOWNRIGHT)
        self.move()
        self.assertEqual(self.sprite.pos.x, 3)
        self.assertEqual(self.sprite.pos.y, 2)

    @showdoc
    def test_priority_move_sprite(self):
        """Sprite moves southeast, then east."""
        self.sprite.add_move(RIGHT)
        self.sprite.add_move(DOWNRIGHT, True)
        self.move()