为什么这个代码以相反的顺序绘制精灵
本文关键字:顺序 绘制 精灵 代码 为什么 | 更新日期: 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
循环的结果之上,在结果中覆盖我的布局。
这并不是一个阻碍,因为我可以按相反的顺序绘制精灵,但我宁愿按屏幕上应该绘制的顺序绘制。
FrontToBack
和BackToFront
排序模式要求您在Draw()
调用中指定精灵深度值;请参阅此处的layerDepth
参数。如果要按照Draw()
调用的顺序绘制精灵,请使用SpriteSortMode.Deferred
或SpriteSortMode.Immediate
。