我是新來的monogame,我試圖製作一個.spritefont
文件,以便使用我選擇的字體繪製字符串。如何在monogame中使用spritefont繪製每個角色
帶有英文字符的字符串可以在屏幕上顯示,但我希望用多種語言繪製字符串,如日文和中文。
所以,我試圖加載多語言字體「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
stucks和永遠需要進行的內容。
碼在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'。你確定這個問題並不簡單嗎,比如看一個錯誤的文件什麼的?如果將「End」更改爲「&#x0022; '? –
Groo
是的,它編譯。我在想,也許是'&#xFFEE; '太大了,因爲互聯網上的文章說內容管道會將字符區域中的所有字符解析爲圖像文件。 –
J3soon
@格羅但錯誤消息困惑我,我不知道我能做什麼。 – J3soon