コード例 #1
0
        public void DebugRender(IGameContext gameContext, IRenderContext renderContext)
        {
            if (renderContext.IsCurrentRenderPass <IDebugRenderPass>())
            {
                var debugRenderPass = renderContext.GetCurrentRenderPass <IDebugRenderPass>();

                if (debugRenderPass.EnabledLayers.OfType <PerPixelCollisionDebugLayer>().Any())
                {
                    foreach (var aWR in _components)
                    {
                        IPerPixelCollisionComponent a;
                        if (!aWR.TryGetTarget(out a))
                        {
                            continue;
                        }

                        if (!(a.Texture?.IsReady ?? false))
                        {
                            continue;
                        }

                        var aParent = _hierarchy.Lookup(a)?.Parent?.UntypedValue as IHasTransform;

                        var aRectangle = CalculateBoundingBox(aParent, a);

                        _debugRenderer.RenderDebugTriangle(
                            renderContext,
                            new Vector3(aRectangle.X, aRectangle.Y, 0),
                            new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y, 0),
                            new Vector3(aRectangle.X, aRectangle.Y + aRectangle.Height, 0),
                            Color.Orange,
                            Color.Orange,
                            Color.Orange);
                        _debugRenderer.RenderDebugTriangle(
                            renderContext,
                            new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y + aRectangle.Height, 0),
                            new Vector3(aRectangle.X + aRectangle.Width, aRectangle.Y, 0),
                            new Vector3(aRectangle.X, aRectangle.Y + aRectangle.Height, 0),
                            Color.Orange,
                            Color.Orange,
                            Color.Orange);
                    }
                }
            }
        }
コード例 #2
0
 public void DrawTriangle(JVector pos1, JVector pos2, JVector pos3)
 {
     _debugRenderer.RenderDebugTriangle(
         _renderContext,
         pos1.ToXNAVector(),
         pos2.ToXNAVector(),
         pos3.ToXNAVector(),
         _isRigidBodyActive ? Color.Red : Color.DarkRed,
         _isRigidBodyActive ? Color.Green : Color.DarkGreen,
         _isRigidBodyActive ? Color.Blue : Color.DarkBlue);
 }
コード例 #3
0
 public void DrawTriangle(JVector pos1, JVector pos2, JVector pos3)
 {
     _debugRenderer.RenderDebugTriangle(
         _renderContext,
         pos1.ToXNAVector(),
         pos2.ToXNAVector(),
         pos3.ToXNAVector(),
         Color.Yellow,
         Color.Yellow,
         Color.Yellow);
 }