Как выводить русский шрифт в xna?
Во первых нужно добавить переменные
//Для
хранения шрифта
SpriteFont
font;
//Для
хранения позиции вывода текста
Vector2 position;
//Строка для вывода
string txt;
//Для нахождения центра строки
Vector2
center;
Инициализировать надпись
txt =
"Russian Текст";
Загрузить xml файл шрифта, может быть любым, только не
начинается на цифру.
С раширением spritefont. и обозначить позицию и центр
текста в окне.
//Загружаем шрифт
font =
Content.Load<SpriteFont>("Courier New");
//Устанавливаем позицию
вывода шрифта в центре экрана
position = new Vector2(50,20);
//Находим центр строки
center =
MyFont.MeasureString(OutString) / 2;
И вывести на экран в Draw
spriteBatch.Begin();
//Выводим строку
spriteBatch.DrawString(font,
txt, //также можно и в
скобках написать текст "Russian Текст"
position, // позиция текста, если указан центр то позиция центрально
точки
Color.Red)б // цвет текста, это минимум для вывода текста, остальные
параметры метода не обязательны
0,
//угол поворота
center, //
1.0f, // масштаб
SpriteEffects.None, // еффекты
0);
// слой
spriteBatch.End();
DrawString содержит 6 способов вывести текст, Rectangle
не имеет, но MyFont.MeasureString(OutString) возвращает нижнею правую точку.
position.X и position.Y соответствующие координаты.
xml файл добавляется в папку Content. Добавить ->
Добавить элемент
и содержит следующее. Совет не удаляйте не чего добавьте
только диапазон кириллических символов.
<?xml version="1.0"
encoding="utf-8"?> //Кодировку - не вижу в ней смысла, но после
php возникла привычка. как и все срекомендую utf-8 содержит все символы.
<XnaContent
xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
<Asset
Type="Graphics:FontDescription">
<FontName>Courier
New</FontName> // имя шрифта установленного в системе
<Size>20</Size> // размер
<Spacing>0</Spacing> // интервал между символами
<UseKerning>true</UseKerning>
<Style>Regular</Style> // стиль шрифта. Правильными являются
"Regular", "Bold", "Italic", "Bold
Italic".
<CharacterRegions> // диапазоны символов Eng и Rus
<CharacterRegion>
<Start> </Start>
<End>~</End>
</CharacterRegion>
<CharacterRegion>
<Start>А</Start>
<End>я</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>
Ну вот и все удачи в GameDev и прошу комментируйте
|