private void DrawLink(Link link) { Color color = UIColoring.GetLinkColor(link.GetLinkType()); var apos = link.GetActor().Position.SubstractZ(); var rpos = link.GetReciever().Position.SubstractZ(); var aUIpos = GameToUIPosition(GameImageSource, apos, CoordOrigin, Dimension); var rUIpos = GameToUIPosition(GameImageSource, rpos, CoordOrigin, Dimension); GameImageSource.DrawLineAa((int)aUIpos.X, (int)aUIpos.Y, (int)rUIpos.X, (int)rUIpos.Y, color); GameImageSource.AddDirtyRect(new Int32Rect { X = (int)aUIpos.X, Y = (int)aUIpos.Y, Width = Math.Abs((int)aUIpos.X - (int)rUIpos.X), Height = Math.Abs((int)aUIpos.Y - (int)rUIpos.Y) }); }
private void DrawEntity(Player entity) { Color color = UIColoring.GetEntityColor(entity); var UIpos = GameToUIPosition(GameImageSource, entity.Position.SubstractZ(), CoordOrigin, Dimension); var Yaw = Angle.FromDegrees(-entity.Facing.Yaw).Radians; var aimX = (int)(UIpos.X + LOS_LENGTH * Math.Cos(Yaw)); // Aim vector from Yaw -> dont forget toRadian for this calc var aimY = (int)(UIpos.Y + LOS_LENGTH * Math.Sin(Yaw)); GameImageSource.FillEllipseCentered((int)UIpos.X, (int)UIpos.Y, ENTITY_RADIUS, ENTITY_RADIUS, color); GameImageSource.DrawLineAa((int)UIpos.X, (int)UIpos.Y, aimX, aimY, color); GameImageSource.AddDirtyRect(new Int32Rect { X = (int)(UIpos.X - ENTITY_RADIUS / 2), Y = (int)(UIpos.Y - ENTITY_RADIUS / 2), Width = ENTITY_RADIUS * 2, Height = ENTITY_RADIUS * 2 }); }