Я новичок в monogame, и я пытаюсь создать файл .spritefont
, чтобы нарисовать строку с выбранным шрифтом.Как нарисовать все символы с помощью spritefont в monogame
Строки с английскими символами могут хорошо отображаться на экране, но я хочу рисовать строки на нескольких языках, например, на японском и китайском.
Итак, я попытался загрузить все символы в многоязычном шрифте «Microsoft JhengHei».
Первый символ шрифта: !(U+0021)
, а последний - ○(U+FFEE)
.
Но когда я пытался скомпилировать программу, компилятор дал мне ошибку:
.../Content/MyFont.spritefont : error : Importer 'FontDescriptionImporter' had unexpected failure!
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentException: CharacterRegion.End must be greater than CharacterRegion.Start
at Microsoft.Xna.Framework.Content.Pipeline.Graphics.FontDescription.set_CharacterRegions(CharacterRegion[] value)
И когда я изменил ○
на 忮
, MSBuild
заклинивание и принимает навсегда, чтобы продолжить содержание.
Код в MyFont.spritefont
ниже:
<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
<Asset Type="Graphics:FontDescription">
<FontName>Microsoft JhengHei</FontName>
<Size>14</Size>
<Spacing>0</Spacing>
<UseKerning>true</UseKerning>
<Style>Regular</Style>
<CharacterRegions>
<CharacterRegion>
<Start>!</Start>
<End>○</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>
Я искал решение в течение нескольких дней, но напрасно, любая помощь приветствуется.
Это не имеет смысла, так как 'CharacterRegion.End' и '.Start' являются типами' char', а '(char) 0xFFEE' больше, чем' (char) 0x0021'. Вы уверены, что проблема не проще, например, посмотреть на неправильный файл или что-то еще? Что произойдет, если вы измените «Конец» на « & # x0022; '? –
Groo
Да, он компилируется. Я думаю, что, возможно, ' & # xFFEE; 'слишком большой или что-то еще, потому что статьи в Интернете говорят, что Content Pipeline будет анализировать все символы в области символов в файл изображения. –
J3soon
@Groo Но сообщение об ошибке смутило меня, и я не знаю, что я могу сделать. – J3soon