【发布时间】:2013-11-29 22:50:18
【问题描述】:
我不太明白如何为我的程序中的不同屏幕处理 ZBuffering。我有一个screenControllers 类,它为我的每个活动Screen 类调用一个Draw 方法。 spriteBatch.Begin 和spriteBatch.End 调用是在screenController 的抽奖中进行的。 Screen 的 Draw 对正在绘制的每个纹理只有一个 spriteBatch.Draw 语句。我知道我可以在调用
public void Draw (
Texture2D texture,
Rectangle destinationRectangle,
Nullable<Rectangle> sourceRectangle,
Color color,
float rotation,
Vector2 origin,
SpriteEffects effects,
float layerDepth
)
spriteBatch 的方法。
但是假设我打开一个屏幕,其中包含某个给定深度的纹理。然后,我打开的第二个屏幕应该具有与前一个相同深度值的其他纹理,但在前一个屏幕的 TOP 上按顺序绘制。我怀疑我是否需要此功能,因为我打开的第二个屏幕可能是我的场景窗口顶部的选项屏幕,前面有所有内容,或者它可能是不在场景窗口顶部但对边。我只是想知道这种多屏幕的分层功能是否可以在 XNA 中实现?
【问题讨论】: