您的位置:首页 > 其它

XNA学习笔记——SpriteBatch.Draw的layerDepth

2010-09-08 14:01 531 查看
spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.FrontToBack, SaveStateMode.None);

spriteBatch.Draw(pic1, new Vector2(0, 0),
null, Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.5f);

spriteBatch.Draw(pic2, new Vector2(0, 0),
null, Color.White, 0.0f, Vector2.Zero, 0.25f, SpriteEffects.None, 1.0f);

spriteBatch.End();


SpriteSortMode为FrontToBack的情况下,是pic1先画,pic2后画,因为pic2图片尺寸大于pic1,所以pic2会完全覆盖pic1.结果如下



如果改成

spriteBatch.Draw(pic1, new Vector2(0, 0),
null, Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 1.0f);


结果如下



虽然pic1和pic2的layerDepth是相等的,但结果是pic2先画,pic1后画。即使把SpriteSortMode改为BackToFront,结果不变。所以当两者的层深相等时,可以想象成后进先出的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: