【问题标题】:Monogame - how to have draw layer while on SpriteSortMode.TextureMonogame - 如何在 SpriteSortMode.Texture 上绘制图层
【发布时间】:2018-02-22 13:32:33
【问题描述】:

我有一个问题,在我的游戏中我必须使用SpriteSortMode.Texture,因为我有很多纹理很少的对象,所以我不能使用SpriteSortMode.BackToFront

问题是这意味着我不能按图层绘制,除非我使用完全相同的设置执行SpriteBatch.Begin,这就是我目前正在做的事情。

我只需要 3 个绘制层 - 一个 Tileset 表面、表面上的岩石或角色等对象以及 UI。

我发现的其他解决方案是使用纹理四边形(据说也可以提高图块绘制性能),使用我尚未研究过的正交视图进行 3D。

我希望有更好的方法来完成这项工作。

【问题讨论】:

    标签: xna monogame spritebatch


    【解决方案1】:

    为什么有很多带有少量纹理的对象意味着您必须使用 SpriteSortMode.Texture?

    “这可以提高绘制均匀深度的非重叠精灵时的性能。”说 MSDN 页面,这显然不是你在做什么。

    只需使用默认的 SpriteSortMode.Deferred 并按顺序将事物拉回前面。

    【讨论】:

    • 我已经测试了延迟或纹理,差异很大,因为我使用的是许多相似纹理的瓷砖,即使我有多个图层,它仍然要好得多
    • 好吧,那我就在黑暗中刺一下,一个完整的猜测:如果你把不同图层的绘图代码放在他们自己的 spriteBatch.Begin() 和 spriteBatch,End() 之间会怎样陈述?甚至可以尝试在两者之间更改排序模式?
    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多