monogame吧 关注:38贴子:37
  • 6回复贴,共1

monogame中文显示方式整理

只看楼主收藏回复

鬼吧发帖还会被吞?


IP属地:山东1楼2024-03-07 13:31回复
    1 LocalizeFont
    通过mgcb的LocalizedFont可以部分的显示中文,在初学阶段是一个不错的方式。
    在mgcb中创建一个LocalizedFont文件,和创建SpriteFont文件类似
    打开创建的Localizedfont文件,将Arial修改为你需要的字体名,注意最好输入字体对应的英文字体名,如果报错未找到字体可能是字体名错误
    在文件末尾有如下内容
    <!--
    ResourceFiles control the characters which will be in the font. It does this
    by scanning the text in each of the resource files and adding those specific
    characters to the font.
    -->
    <ResourceFiles>
    <!-- <Resx>Strings.resx</Resx> -->
    </ResourceFiles>
    </Asset>
    将倒数第三行的注释删除即可。
    再到项目的根目录下创建一个Strings.resx,resx文件名需要和上面注释的代码里的名字保持一致。
    在resx中输入你想要显示的文字,然后你就可以使用该字体显示resx包含的字符
    比如,你在resx中输入了“春眠不觉晓”,那么这个字体就可以显示“春”,“眠”,“不”,“觉”,“晓”这五个字符
    在中文显示重复性较高的项目中适合这个方式


    IP属地:山东2楼2024-03-07 13:39
    收起回复
      2 Bitmapfonts
      使用方式参考:Bitmap Font | MonoGame.Extended (monogameextended.net)
      需要下载BMFont进行字体生成,字体较多则速度慢
      使用时注意的一点是,无论你的引用方式是什么,nuget包还是需要下载的,不过如果你是源代码引用项目的话,可以从MonoGame.Extended.Content.Pipleine的nuget包中的tools文件夹中复制dll到自己的项目中(不复制也可以),然后在mgcb中点击Content- Reference - Add,然后将dll文件添加到mgcb文件中即可。之后就是将BMFont生成的fnt和纹理文件添加到项目中并编译。


      IP属地:山东3楼2024-03-07 14:10
      回复
        3 SpriteFontPlus
        项目地址 https://github.com/rds1983/SpriteFontPlus
        可以直接读取ttf文件,在资料的调用上更加清晰,不需要通过mgcb文件进行处理。
        在使用时注意,需要自己修改CharacterRange文件,添加中文字符对应的u8范围。然后按照提供的例子中的日文案例进行使用即可。


        IP属地:山东4楼2024-03-07 14:14
        收起回复
          谢谢楼主


          IP属地:北京来自iPhone客户端5楼2024-03-07 18:47
          回复