首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UrhoSharp中绘制圆或线

如何在UrhoSharp中绘制圆或线
EN

Stack Overflow用户
提问于 2016-06-29 10:18:29
回答 2查看 1.1K关注 0票数 0

我正在使用xamarim的urhosharp游戏引擎开发一个跨平台游戏.这确实是一个很好的选择,与WPF兼容,但我不知道如何绘制形状,我查阅了指南和文档,没有找到一种可能绘制圆圈、圆形、环形或其他任何人知道或可以帮助我的几何类型的方法。我将非常感激。

预先感谢

我试过这段代码,但屏幕上没有出现圆圈:

代码语言:javascript
复制
DebugRenderer debug = new DebugRenderer();
debug.AddCircle(new Vector3(50,50,0),new Vector3(100,25,0),50,Color.Magenta,2 ,true  );

       for (int i = 0; i < 512; ++i)
                {
                    var start = new Vector3(i, 0, 0);
                    var end = new Vector3(i, 100, 0);

                    debug.AddLine(start, end, Color.White, false);
                    debug.AddCircle(start, end, 50f, Color.Red, i, false);
                }

    scene.AddComponent(debug);
EN

回答 2

Stack Overflow用户

发布于 2016-08-04 12:07:07

请注意,DebugRenderRender是用于调试的。如果您想使DebugRenderer工作,您需要像这样订阅PostRenderUpdate:

代码语言:javascript
复制
Engine.SubscribeToPostRenderUpdate(args => YourMethodHandler);

通常你会在你的设置中这样做。然后YourMethodHandler就像:

代码语言:javascript
复制
protected void YourMethodHandler()
{
    // this requires that you have already added a DebugRenderer
    // component in your scene object
    var debugRenderer = scene.GetComponent<DebugRenderer>();

    if (debugRenderer != null)
    {
        // do your drawing code here
        // to draw a rectangle for example:

        var upperBound = new Vector3(-4.0f, 2.0f, 0.0f);
        var lowerBound = new Vector3(4.0f, -2.0f, 0.0f);
        debugRenderer.AddBoundingBox(
            new BoundingBox(upperBound, lowerBound), 
            Color.White, 
            false);
    }
}
票数 2
EN

Stack Overflow用户

发布于 2018-06-02 15:35:29

更确切地说,只有在这样实现时,它才能起作用:

代码语言:javascript
复制
var dr = app.Scene.GetOrCreateComponent<DebugRenderer>();
app.Engine.PostRenderUpdate += (arg4) => {
    app.Renderer.DrawDebugGeometry(false);
};
app.Renderer.BeginViewRender += (arg5) => {
    dr.AddBoundingBox(new BoundingBox(-1000, 1000), Color.Blue);
    dr.LineAntiAlias = true;
    dr.AddTriangle(new Vector3(2,0,0), new Vector3(2,1,0), new Vector3(2,0,1), Color.Magenta, false);
    dr.AddCircle(new Vector3(2,0,0), new Vector3(1,1,1), 5.0f, Color.Red);
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38096719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档