0

我正在尝试在 XNA 中实现地形碰撞,所以我添加了一些动态文本,让我可以测试计算是否正确。一切都很好,直到我打电话:

spriteBatch.Begin(); spriteBatch.End();

或者

spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); spriteBatch.End();

有了这些说明,地形会出现一点小故障,当我从代码中删除这两行时,一切都恢复正常(但这意味着我无法绘制 HUD)

任何人都有任何线索可能导致这种情况以及我应该如何解决它?

屏幕:

开启精灵批处理

关闭精灵批处理

4

1 回答 1

0

它由于 spritebatch 更改图形设备状态...

在绘制地形之前,您应该存储正确的渲染状态...

通常你必须设置正确的 RasterizerState 和 DepthStencilState。

常用值是 RasterizarState.CullNone 和 DepthStencilState.Default

于 2013-05-09T00:52:20.677 回答