Skip to content

Instantly share code, notes, and snippets.

@muink
Last active March 9, 2019 15:20
Show Gist options
  • Save muink/f32800d7930855d8b4394bafd0893447 to your computer and use it in GitHub Desktop.
Save muink/f32800d7930855d8b4394bafd0893447 to your computer and use it in GitHub Desktop.
制作一个单独的xna字库

制作一个单独的xna字库

你需要的东西

  1. 你要使用的字体(仅非版权字体)
  2. Microsoft Visual Studio C#2010 express1
  3. XNA Game Studio 4.0
  4. CharacterRegionTool(C#)
  5. 一个可以可以保存扩展名为"all files"的文本编辑器, 例如(notepad++
  6. XNAFormatterXNAContentCompiler

安装顺序

  1. Microsoft Visual Studio C#2010 express
  2. XNA Game Studio 4.0

产生字符列表

  1. 运行CharacterRegionTool(C#)
  2. 输入所有需要生成的字符
  3. 生成的结果段复制备用

制作spritefont字体

  1. 创建一个<Name>.spritefont文件, 这是一个示例
<?xml version="1.0" encoding="utf-8"?>
<!--
This file contains an xml description of a font, and will be read by the XNA
Framework Content Pipeline. Follow the comments to customize the appearance
of the font in your game, and to change the characters which are available to draw
with.
-->
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
  <Asset Type="Graphics:FontDescription">

    <!--
    Modify this string to change the font that will be imported.
    -->
    <FontName>Segoe UI Mono</FontName>

    <!--
    Size is a float value, measured in points. Modify this value to change
    the size of the font.
    -->
    <Size>14</Size>

    <!--
    Spacing is a float value, measured in pixels. Modify this value to change
    the amount of spacing in between characters.
    -->
    <Spacing>0</Spacing>

    <!--
    UseKerning controls the layout of the font. If this value is true, kerning information
    will be used when placing characters.
    -->
    <UseKerning>true</UseKerning>

    <!--
    Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
    and "Bold, Italic", and are case sensitive.
    -->
    <Style>Regular</Style>

    <!--
    If you uncomment this line, the default character will be substituted if you draw
    or measure text that contains characters which were not included in the font.
    -->
    <!-- <DefaultCharacter>*</DefaultCharacter> -->

    <!--
    CharacterRegions control what letters are available in the font. Every
    character from Start to End will be built and made available for drawing. The
    default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
    character set. The characters are ordered according to the Unicode standard.
    See the documentation for more information.
    -->
    <CharacterRegions>
        <CharacterRegion><Start>&#x0020;</Start><End>&#x007e;</End></CharacterRegion>
    </CharacterRegions>
  </Asset>
</XnaContent>
  1. 你可以修改<FontName>指定使用何种字体
  2. 修改<Size>指定字体大小
  3. 修改<Style>]指定字重
  4. 将之前CharacterRegionTool(C#)生成的的结果段填入<CharacterRegions>区段中

生成字库

  1. 运行XNAFormatter
  2. 选择.spritefont文件
  3. 点击 convert 进行生成
  4. 等待转换完成 (根据字符量可能消耗较长的时间)

资料参考

[Guide] How to make Custom Terraria Fonts
Advanced modding: Changing orbs and any other sprite

Footnotes

  1. 现已下载不到, 可以在网上寻找iso档资源
    英文版All-in-One ISO: VS2010Express1.iso
    a24a4bc46013002f50fcfeef3ceac090
    简中版All-in-One ISO: VS2010ExpressCHS.iso
    abb59d30db3bc2e2094bf27759440672
    繁中版All-in-One ISO: VS2010ExpressCHT.iso
    日文版All-in-One ISO: VS2010ExpressJPN.iso

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment