def test_it_can_add_a_keyframes_to_a_sequence(): s = a.Sequence() k1 = a.KeyFrame() k2 = a.KeyFrame() some_callback = lambda: 1 s.add_keyframes((0, k1), (1, k2, some_callback)) assert id(s[0].frame) == id(k1) assert id(s[1].frame) == id(k2) assert s[1].callback == some_callback
def test_it_can_generate_points_in_time_from_a_sequence(): s = a.Sequence() k1 = a.KeyFrame(position=(10, 10), angle=0, height=100) k2 = a.KeyFrame(position=(10, 100), angle=100, height=200) s.add_keyframes((0, k1), (1, k2)) pits = s._to_point_in_times() assert len(pits) == 3 assert list(pits.keys()) == ['position', 'angle', 'height'] assert pits['position'].point_at(.5) == (10, 55) assert pits['angle'].point_at(.5) == 50 assert pits['height'].point_at(.5) == 150 assert pits['height'].point_at(1) == 200 assert pits['height'].point_at(10) == 200
def test_it_can_animate_a_sprite_over_time(): s = a.Sequence() k1 = a.KeyFrame(position=(10, 10), angle=0, height=100) k2 = a.KeyFrame(position=(10, 100), angle=100, height=200) s.add_keyframes((0, k1), (1, k2)) inst = sprite_instance() anim = a.Animator(inst, s) anim.blip(.5) assert inst.position == (10, 55) assert not anim.finished anim.blip(1) assert inst.position == (10, 100) assert anim.finished
def test_it_can_play_animations(): s = a.Sequence() k1 = a.KeyFrame(position=(10, 10)) k2 = a.KeyFrame(position=(10, 100)) s.add_keyframes((0, k1), (1, k2)) inst = arcade.Sprite() manager = a.AnimationManager() manager.fire(inst, s) assert len(manager.animations) == 1 manager._blip(.5) assert len(manager.animations) == 1 assert inst.position == (10, 55) manager._blip(2) assert len(manager.animations) == 0 assert inst.position == (10, 100)
def test_it_can_execute_a_callback_at_a_given_time(): s = a.Sequence() k1 = a.KeyFrame(position=(10, 10)) k2 = a.KeyFrame(position=(10, 100)) s.add_keyframes((0, k1), (1, k2)) callback = mock.Mock().some_callback s.add_callback(.5, callback) inst = sprite_instance() anim = a.Animator(inst, s) anim.blip(.4) callback.assert_not_called() anim.blip(.2) callback.assert_called_once() anim.blip(.4) callback.assert_called_once() assert not anim._upcoming_callback
def test_it_can_add_a_keyframe_to_a_sequence(): s = a.Sequence() k = a.KeyFrame() s.add_keyframe(0, k) assert id(s[0].frame) == id(k)
def make_sequence(): s = a.Sequence() k1 = a.KeyFrame(position=(10, 10)) k2 = a.KeyFrame(position=(10, 100)) s.add_keyframes((0, k1), (1, k2)) return s
def test_it_can_make_a_sequence_from_a_sprite(): s = a.Sequence().from_sprite(sprite_instance()) assert len(s) == 1 assert s[0].frame.position == (10, 20)