Пример #1
0
    public void TestUnitViewGetPosition()
    {
        PositionInterpolator unitView = new PositionInterpolator();

        unitView.SetPosition(0, new UnityEngine.Vector2(0, 0));
        unitView.UpdatePosition(1, new UnityEngine.Vector2(100, 0));

        Assert.That(UnityEngine.Vector2.Distance(unitView.GetCurrentPosition(0), new UnityEngine.Vector2(0, 0)) < distancePrecision);
    }
Пример #2
0
    public void TestUnitViewGetPositionIncrementalDt3()
    {
        PositionInterpolator unitView = new PositionInterpolator();

        unitView.SetPosition(0, new UnityEngine.Vector2(0, 0));
        unitView.UpdatePosition(0.05f, new UnityEngine.Vector2(100, -100));

        Vector2Assert.AreEqual(new UnityEngine.Vector2(32.0f, -32.0f), unitView.GetCurrentPosition(0.016f), distancePrecision);
    }
Пример #3
0
    public Unit(Vector2 position)
    {
        _gamePosition = position;

        positionInterpolator = new PositionInterpolator();
        positionInterpolator.SetPosition(0, _gamePosition);

        _destination = _gamePosition;
        _moving      = false;
    }
Пример #4
0
 public void Show()
 {
     // this is a little bugged,
     // because it will simply cause
     // the menu to teleport around,
     // instead of smoothly animate,
     // when the animation is interupted.
     positionInterpolator = new PositionInterpolator(animationFrames, startingPosition, endingPosition,
                                                     interpolator.GetInterpolationFunction(), transform);
 }
Пример #5
0
    public void TestUnitViewGetPositionIncrementalDt2()
    {
        PositionInterpolator unitView = new PositionInterpolator();

        unitView.SetPosition(0, new UnityEngine.Vector2(0, 0));
        unitView.UpdatePosition(1, new UnityEngine.Vector2(100, -100));

        Assert.That(UnityEngine.Vector2.Distance(unitView.GetCurrentPosition(0.1f), new UnityEngine.Vector2(10, -10)) < distancePrecision);
        unitView.UpdatePosition(1, new UnityEngine.Vector2(410, -410));
        Assert.AreEqual(unitView.GetCurrentPosition(0.1f), new UnityEngine.Vector2(50, -50));
        //		Assert.That (UnityEngine.Vector2.Distance (unitView.GetCurrentPosition (0.1f), new UnityEngine.Vector2 (40, -40)) < distancePrecision);
    }
Пример #6
0
        private void SetPosition(Vector2 position, GameTime gameTime)
        {
            if (State != EntityStates.Idle)
            {
                return;
            }

            if (!Visible)
            {
                Visible  = true;
                Position = position;
                return;
            }

            State = EntityStates.Moving;
            _positionInterpolator = new PositionInterpolator(Position, position, Configuration.Instance.GameSpeed, gameTime, pa => Position = pa.Current);
        }
Пример #7
0
        public void Update(GameTime gameTime)
        {
            if (_positionInterpolator != null)
            {
                _positionInterpolator.Update(gameTime);
                if (_positionInterpolator.IsDone)
                {
                    _positionInterpolator = null;
                    State = EntityStates.Idle;
                }
            }

            _animation.Update(gameTime);
            if (State == EntityStates.Appearing && _animation.IsDone)
            {
                SetDefaultAnimation();
                State = EntityStates.Idle;
            }
        }
Пример #8
0
 public void Hide()
 {
     positionInterpolator = new PositionInterpolator(animationFrames, endingPosition, startingPosition,
                                                     interpolator.GetInterpolationFunction(), transform);
 }