XNA SpriteBatch导致BasicEffect出现问题

我正在使用XNA来可视化一些数据,并且我正在尝试使用数据广告牌,以及用于HUD文本绘制的spritebatch。

对于广告牌,我使用以下示例,该示例非常适用:http://create.msdn.com/en-US/education/catalog/sample/3d_audio

在这个例子中,有一只猫和狗的小精灵,猫通过狗的前面或后面,取决于他们的位置和相机的位置,如你所期望的。 Cat.Draw和Dog.Draw被调用的顺序并不重要。这些人是从BasicEffect中抽取的。

但是,如果我添加一个继承DrawableGameComponent并使用SpriteBatch的类,其他组件中的BasicEffect会丢失它的深度排序,并且按照调用的顺序绘制Quads。 请注意,此组件通过this.Components.Add(...)添加到Game类。

BasicEffect和SpriteBatch之间是否存在不兼容? 每当调用SpriteBatch.Begin()/ End()时都会出现问题。 如果我不这么称呼,那么猫/狗就会呈现出来。

有任何想法吗?


您需要重置SpriteBatch更改的一些渲染测试。

尝试在basiceffect调用之前设置它们:

GraphicsDevice.BlendState = BlendState.Opaque;
GraphicsDevice.DepthStencilState = DepthStencilState.Default;

有关SpriteBatch更改状态的更多信息:http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

链接地址: http://www.djcxy.com/p/95507.html

上一篇: XNA SpriteBatch causing problems with BasicEffect

下一篇: Unhandled Exception System.BadImageFormatException