コード例 #1
0
def test_it_can_chain_animations():
    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

    seq1 = make_sequence()
    seq2 = make_sequence()
    inst1 = arcade.Sprite()
    inst2 = arcade.Sprite()
    chain = a.Chain()
    chain.add_sequence(inst1, seq1)
    chain.add_sequence(inst2, seq2)
    chain.blip(0)
    assert inst1.position == (10, 10)
    assert inst2.position == (0, 0)
    chain.blip(.5)
    assert inst1.position == (10, 55)
    assert inst2.position == (0, 0)
    chain.blip(1)
    assert inst1.position == (10, 100)
    assert inst2.position == (10, 55)
    chain.blip(1)
    assert inst1.position == (10, 100)
    assert inst2.position == (10, 100)
    assert chain.finished
コード例 #2
0
def test_it_can_kill_from_chain_if_current_animator_has_sprite():
    chain = a.Chain()
    chain.anim_queue = 1
    sprite = mock.Mock()
    current_animator = mock.Mock(sprite=sprite)
    chain.current_animator = current_animator
    assert chain.kill(sprite)
コード例 #3
0
def test_it_can_kill_from_chain_if_sprite_is_in_future_animations():
    chain = a.Chain()
    sprite = mock.Mock()
    chain.anim_queue = iter([(sprite, None)])
    current_animator = mock.Mock(sprite=mock.Mock())
    chain.current_animator = current_animator
    assert chain.kill(sprite)
コード例 #4
0
def test_it_can_reconstruct_anim_queue_on_invalid_kill():
    chain = a.Chain()
    anim = (mock.Mock(), None)
    chain.anim_queue = iter([anim])
    current_animator = mock.Mock(sprite=mock.Mock())
    chain.current_animator = current_animator
    assert not chain.kill(mock.Mock())
    assert list(chain.anim_queue) == [anim]
コード例 #5
0
def test_it_doesnt_break_when_killing_on_unstarted_chain():
    chain = a.Chain()
    assert not chain.kill(mock.Mock())