追蹤
兔子也會的遊戲設計
關於部落格
一個推廣XNA與OGRE的園地,當然還有其他關於遊戲設計的主題,歡迎有興趣的同好交流指教
  • 104845

    累積人氣

  • 0

    今日人氣

    0

    追蹤人氣

[XNA 教學]顯示中文字型

private Texture2D fontTex;
            //漸變色彩的區域
            System.Drawing.Rectangle ClientRectangle = new System.Drawing.Rectangle(0, 0, 20, 20);
            //建立漸變色筆刷 遊戲中的秀字顏色可以炫一點
            System.Drawing.Drawing2D.LinearGradientBrush myBrush = new     System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, System.Drawing.Color.Red,  System.Drawing.Color.Yellow, System.Drawing.Drawing2D.
            LinearGradientMode.Horizontal);
            //建立字型與大小
            Font myFont = new Font("標楷體", size);
            //建立中介bmp圖檔
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            //把GDI+圖型指向bmp圖檔
            System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(image);
            //秀字 顯示中文、英文、數字都沒問題  最後一個參數是秀字的區域 超過會自動換行
            graphic.DrawString(str, myFont, myBrush, rect);
            //記憶體串流
            MemoryStream stream = new MemoryStream();
            //把圖形存成png格式以便秀半透明字 只是存到記憶體 而不是硬碟
            image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
            //把指標指向起點
            stream.Seek(0, SeekOrigin.Begin);
            //用記憶體裡面的像素做成xna可用的材質
            fontTex = Texture2D.FromFile(graphics.GraphicsDevice, stream);

最後再用sprite把fontTex秀出來就好,要注意的是上述做法不能在每次更新的時候做,
因為一直產生材質會非常吃效能,所以要自己做一些管理的機制,這部分就留給大家
自行應用了,enjoy it!
相簿設定
標籤設定
相簿狀態