2010-09-17 75 views
0

正試圖讓模具在我的應用程序中工作。我使用Sprites將內容呈現到設備上。內容可以是電影,圖片或文字。無法獲取模板

我可以使用這些精靈來設置模板緩衝區,這些精靈可以在稍後的傳遞中用來模板化其他正在渲染的精靈?

我甚至無法通過設置StencilFunction = Compare.Never來模板化任何Sprite。有什麼不對的,我可能會做?

我已經花了差不多一整天的時間查看與MDX中的Stencils相關的帖子,但無法使其正常工作。

位更多的搜索讓我有一種技術,其中我們繪製要添加到模板緩衝區的形狀的輪廓。這對我來說真的需要嗎?我只想使用Sprites,並將它們添加到模板緩衝區以模板化其他Sprites。

編輯:好的..所以我想出瞭如何完成它。提到這篇文章 - http://www.gamedev.net/community/forums/viewreply.asp?ID=1999276

但現在精靈忽略alpha值和渲染精靈不透明。類似於alpha混合設置爲false時的效果。有任何想法嗎?

回答

0

所以,我終於明白了。這一切都與Sprites及其Begin()方法有關。

Sprite.Begin()將修改RenderState並禁用模具。我們可以通過設置SpriteFlags.DoNotModifyRenderState標誌來阻止它,但是當繪製小精靈時不支持alpha混合。

我現在所做的只是簡單地調用Sprite.Begin()而沒有設置SpriteFlags.DoNotModifyRenderState標誌。在調用Sprite.Draw()之前,在設備上啓用模板。