2011-04-19 55 views
1

我開始學習SL5和3D API。任何人都可以幫助解決這個問題:我正在創建3D對象,例如Cube,並希望在那裏顯示文本。我怎樣才能做到這一點?我可以顯示文字,還是需要隨處使用圖像?SL5在3D對象上顯示文本

謝謝,

迪馬。

回答

0

據我所知,sl5中沒有設計用於在3D場景中製作文本的api。然而,通過使用一個名爲spritebatch的對象可以做到這一點。 spritebatch在xna中是一個高效的類,目前它已被集成到sl5中。因此,要顯示一些文本,您需要1)在畫布上繪製文本2)將畫布轉換爲可寫位圖,以及3)將此可寫位圖映射到可通過將兩個三角形設計爲平面進行定製的spritebatch。下面是使用mytexture上的spritebatch繪圖文本的一個例子。

private void DrawingSurface_Draw(object sender, DrawEventArgs e) 
     { 
      //Thread.Sleep(50); 
      e.GraphicsDevice.Clear(ClearOptions.Target | ClearOptions.DepthBuffer, new Microsoft.Xna.Framework.Color(0, 0, 0, 0), 1.0f, 0); 
      spriteBatch.Begin(e.GraphicsDevice); 
      spriteBatch.Draw(myTexture, new Vector2(0, 0), null, Microsoft.Xna.Framework.Color.White); 
      spriteBatch.Draw(myTexture, new Microsoft.Xna.Framework.Rectangle(150, 0,100,100), null, Microsoft.Xna.Framework.Color.White); 
      spriteBatch.Draw(myTexture, new Microsoft.Xna.Framework.Rectangle(250, 0, 50, 50), null, Microsoft.Xna.Framework.Color.White); 
      spriteBatch.Draw(myTexture, new Microsoft.Xna.Framework.Rectangle(150, 150, 200, 200), new Microsoft.Xna.Framework.Rectangle(0, 0, 100, 100), Microsoft.Xna.Framework.Color.White); 
      spriteBatch.End();