2012-01-04 57 views
0

我有下面的代碼:爲什麼這個代碼繪製以相反的順序精靈?

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循環的結果之上,覆蓋我的佈局結果。

這不是一個表明,塞我可以借鑑我的相反順序的精靈,但我寧願讓他們在它們應該在屏幕上繪製順序。

+1

設置'SpriteSortMode'到'Deffered'時會發生什麼? – keyboardP 2012-01-04 22:59:15

+0

對不起,昨天沒有時間。 「緩衝」模式奏效。謝謝 – LukeP 2012-01-05 23:24:04

回答

4

FrontToBackBackToFront排序模式需要您指定您的通話Draw()精靈深度值;看到layerDepth參數here。如果你想畫的順序精靈,你讓Draw()電話,使用SpriteSortMode.DeferredSpriteSortMode.Immediate

+0

是的,這很好。謝謝一堆! – LukeP 2012-01-05 23:23:20

相關問題