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); }
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); }
public Unit(Vector2 position) { _gamePosition = position; positionInterpolator = new PositionInterpolator(); positionInterpolator.SetPosition(0, _gamePosition); _destination = _gamePosition; _moving = false; }
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); }
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); }
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); }
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; } }
public void Hide() { positionInterpolator = new PositionInterpolator(animationFrames, endingPosition, startingPosition, interpolator.GetInterpolationFunction(), transform); }