NearestDestPt() public method

public NearestDestPt ( Vector2 pt ) : Vector2
pt Vector2
return Vector2
Example #1
0
        public void ShadDraw(UISpriteBatch batch)
        {
            if (!Visible)
            {
                return;
            }
            if (Destination != null && Destination.Dead)
            {
                Destination = null;
            }

            var res = EditorResource.Get();

            DrawLocalTexture(batch, res.NodeOutline, null, new Vector2(res.NodeOutline.Width / -2 + 5, res.NodeOutline.Height / -2 + 5), new Vector2(1f, 1f), ShadCol);

            if (!MouseDrag && Destination == null)
            {
                return;
            }

            var contextPos = Parent.Position + Position;

            ArrowVec = (MouseDrag)?DragVec:(Destination.NearestDestPt(contextPos) - contextPos);

            var dir = new Vector2(ArrowVec.X, ArrowVec.Y);

            dir.Normalize();

            DrawLine(res.WhiteTex, dir * 10 + new Vector2(5, 5), (ArrowVec - dir * 5) + new Vector2(5, 5), batch, 6, ShadCol);
            var arrowDir = (float)Math.Atan2(-dir.X, dir.Y);
            var arrowPos = LocalPoint((ArrowVec) + new Vector2(5, 5));

            batch.Draw(res.ArrowHeadOutline, arrowPos, null, ShadCol, arrowDir, new Vector2(9, 19), _Scale, SpriteEffects.None, 0);
        }