为什么这个代码以相反的顺序绘制精灵

本文关键字:顺序 绘制 精灵 代码 为什么 | 更新日期: 2023-09-27 18:19:32

我得到了以下代码:

spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend, null, null, null, null, cam.TransformMatrix);
spriteBatch.Draw(_comicBackground, workspace, Color.AliceBlue);
foreach (LayoutField lf in comicStrip.LayoutFields)
{
    spriteBatch.Draw(_layoutFieldBackground, new Rectangle(lf.PosX, lf.PosY, lf.Width, lf.Height), Color.White);
}
spriteBatch.End();

但无论SpriteSortMode(FrontToBack|BackToFront)如何,背景总是显示在foreach循环的结果之上,在结果中覆盖我的布局。

这并不是一个阻碍,因为我可以按相反的顺序绘制精灵,但我宁愿按屏幕上应该绘制的顺序绘制。

为什么这个代码以相反的顺序绘制精灵

FrontToBackBackToFront排序模式要求您在Draw()调用中指定精灵深度值;请参阅此处的layerDepth参数。如果要按照Draw()调用的顺序绘制精灵,请使用SpriteSortMode.DeferredSpriteSortMode.Immediate