SL5 Отображение текста на трехмерных объектах - PullRequest
1 голос
/ 19 апреля 2011

Я начинаю изучать SL5 и 3D API.Может ли кто-нибудь помочь с такой проблемой: я создаю 3D-объект, например, Cube и хочу отображать текст там.Как я могу это сделать?Могу ли я отображать текст или мне нужно использовать изображения везде?

Спасибо,

Дима.

1 Ответ

0 голосов
/ 11 апреля 2012

Насколько я знаю, в SL5 нет API, предназначенного для создания текстов в 3D-сцене. Тем не менее, есть альтернатива для этого с помощью объекта под названием spritebatch. spritebatch - эффективный класс в xna, на данный момент он также интегрирован в sl5. Итак, чтобы показать некоторые тексты, вам нужно: 1) нарисовать тексты на холсте, 2) превратить холст в карту битов с возможностью записи, и 3) отобразить эту карту битов с возможностью записи в spritebatch, которую можно настроить, создав два треугольника в виде плоскости. ниже приведен пример использования текстовых чертежей spritebatch, которые находятся на mytexture.

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();
...