示例#1
0
        public void MoveTo(int x, int y)
        {
            lock (_runningLock)
            {
                if (!_running)
                {
                    var animator = new Animator2D(FPSLimiterKnownValues.LimitSixty);
                    var currPos  = _playerDrawable.GetPosition();

                    animator.Paths = CreatePath(currPos.X, currPos.Y, x, y);

                    _lastPathEnd = animator.Paths.Last().End;
                    animator.Play(_frameCallbackInvoker, _endCallback);
                    _running = true;
                }
                else
                {
                    var path = CreatePath((int)_lastPathEnd.X, (int)_lastPathEnd.Y, x, y);
                    _lastPathEnd = path.Last().End;

                    foreach (var path2D in path)
                    {
                        _waitingPaths.Add(path2D);
                    }
                }
            }
        }