[XNA Client UI] SpriteFont生成的一些细则

文章发布时间:

最后更新时间:

文章总字数:
580

预计阅读时间:
2 分钟

研究与修订

研究了半天时间。结合大佬的xnb资料。整合了一下。使其更为通俗易懂。(文章也做自己的备份,以便为了很久之后,想起来再做和修改)

修订日志:

  • 2022年12月21日 修订(最近一次修订)

参考资料:

要点和注意事项

运行环境

运行环境为.Net 与Xna4.0,安装包附在文件链接地址。(经测试Win11和win10可用-测试版本都是21H2)

XNAContentCompiler

常见问题

  • 错误原因为Xna4.0未能正确安装,解决方法是重新安装Xna4.0。

生成问题示例

  • There was an error while deserializing intermediate XML. The value is invalid. Start, ‘豺’ (0x8c7a), must be less than or equal to End, ‘禄’ (0x7984).

字符编码顺序

  • 要保证引用的X.spriteFont内的字符遵循汉字编码由小到大的顺序。

测试实例

1
2
3
4
<CharacterRegion>
<Start></Start>
<End></End>
</CharacterRegion>

字符范围提供

  • 如果需要中文特殊标点符号和英文基本字符,可使用以下范围:
    • 32-512
    • 8192-8303
    • 12288-12351
    • 65280-65519

spriteFont的编写格式

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
<Asset Type="Graphics:FontDescription">
<FontName>填写计算机中添加的字体文件(例如:微软雅黑)</FontName>
<Size>字体大小(填写数字)</Size>
<Spacing>字符间距(填写数字)</Spacing>
<UseKerning>true</UseKerning>
<Style>Regular</Style>
<!-- CharacterRegions 标签 -->
</Asset>
</XnaContent>

注意事项

  • 中文字符也可以使用类似英文编码的写法(如 &#XXX;),前提是知道对应的编码。
  • XNB的生成时间由字符数量决定,字符越多,耗时越长。
  • XNB中文编码为UTF-16 BE。

字库导入方法

  • 采用Excel编辑保存为txt后,利用Vscode或Notepad++修改格式。

补充说明

  • 如果采用字库生成,中文字符标点需要额外添加,以避免客户端错误提示缺少字符。

更详细的原文链接(https://www.bilibili.com/read/cv16344778/)


Copyright © 2022-Now 豺禄. All rights reserved. Do Not Remove This Notice.