Hai*_*ieu 3 c# xna xna-4.0 c#-4.0 spritefont
我想通过使用方法在XNA中绘制特殊字符,如:"π,Ω,θ,ξ"
SpriteBatch.DrawString(),但我得到一个例外,说这些字符在SpriteFont文件中不可用.这有什么解决方案吗?
nee*_*eKo 21
您需要在spritefont中包含这些字符.
在你的spritefont文件中,你需要为希腊字母提供另一个"区域":
<CharacterRegions>
<CharacterRegion><!-- Normal letters -->
<Start> </Start>
<End>~</End>
</CharacterRegion>
<CharacterRegion><!-- Greek letters -->
<Start>Α</Start>
<End>ω</End>
</CharacterRegion>
</CharacterRegions>
Run Code Online (Sandbox Code Playgroud)
当您包含它时,您应该能够使用该spritefont显示这些字符:

要找到这些字符所在的区域,请使用字符映射,这是一个很好的应用程序All Programs -> Accessories -> System Tools.
当你选择一个字符时,它会显示它的字符代码,例如omega(ω)是U + 03C9,它是0x03C9十六进制或969十进制.
您可以通过3种方式在SpriteFont文件中定义区域,它们与三种在XML中编写字符的方式相关:
~- 格式是&#nnnn;~- 格式为&#xnnnn;~这些是用XML编写相同内容的三种方法,因此您可以使用不同的方法来定义区域.以上是地区的十进制表示.
这是十六进制表示,这是从字符映射中最容易获得的:

最后,您可以使用实际字符来定义您的区域,然后通过从字符映射工具中的文本框中粘贴它们来获取它们:

| 归档时间: |
|
| 查看次数: |
4567 次 |
| 最近记录: |