本帖最后由 祂的名字 于 2025-1-5 16:48 编辑
测试效果如图
测试文件:
链接: https://pan.baidu.com/s/1U1VlyUf4Ye97TwXTG6TpIA?pwd=9hbg
一、阅读monogame的官方文档
这很重要,遇到问题从这里找.
https://docs.monogame.net/articles/getting_started/index.html
二、安装 .NET 8 SDK
建议下载dotnet-install脚本安装. 完成后可以在Powershell或者cmd中使用通过"dotnet --version"命令来确认.
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1
三、创建MonoGame项目以及安装MGCB Editor
VS Code示例:
1.在VS Code中,按下键盘Ctrl + `打开终端窗口输入
dotnet new installMonoGame.Templates.CSharp 安装MonoGame 模板
2.添加扩展:
C# Dev Kit 、MonoGame Content Builder (Editor)、 MonoGame for VSCode
3.打开一个空文件夹,在终端窗口输入
dotnet new mgdesktopgl 创建Monogame项目
等待创建完成后右击Content中的Content.mgcb,选择Open in MGCB Editor
Visual Studio 2022示例:
1.确认包含必须的工作负载:Net desktop development(.Net桌面开发)
2.打开VisualStudio 2022选择继续但无需代码,通过控制台运行以下命令安装MonoGame模板
dotnet new install MonoGame.Templates.CSharp
3.打开扩展 -> 管理扩展,搜索MonoGame
MonoGame Framework C# projecttemplates
选择安装后关闭程序等待安装界面,安装完成后重新打开Visual Studio 2022
4.创建一个MonoGameWindows Desktop Application项目
按提示创建完成后,双击Content中的Content.mgcb
默认应该会使用MGCB Editor打开.如果并没有,你需要检查扩展,以及其他步骤是否正确,确认无误的话尝试用以下命令打开
dotnet tool install -g dotnet-mgcb-editor
dotnet tool restore
dotnet mgcb-editor
四、使用.spritefont文件构建.xnb
在MGCB Editor中右击Content选择Add,新建或者添加一份字体文件 SpriteFont Description
修改.spritefont,安装对应的字体或者将字体文件放到.spritefont所在的目录下,字体推荐阅读enderseven的相关教程
准备完成后,右击.spritefont,选择Rebuild开始构建即可
五、.spritefont模板
现在可以构建更加完整的字库了(虽然文件体积略大了一点点…但构建时间基本可以按秒算
- <?xml version="1.0" encoding="utf-8"?>
- <XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
- <Asset Type="Graphics:FontDescription">
- <FontName>unifont-16.0.02</FontName>
- <!--字体名称, 拷贝字体文件名。-->
- <Size>12</Size>
- <!--字体大小, 根据效果调整, 超出一定范围客户端会崩溃。-->
- <Spacing>1</Spacing>
- <!--字体间距, 修改此值可以更改字符之间的间距量。-->
- <UseKerning>false</UseKerning>
- <!--是否读取间距true/false。但我如果设置为true, 间距会出错, 搞不懂。-->
- <Style>Regular</Style>
- <!--Style控制字体的样式。有效条目为"Regular"(常规)、"Bold"(粗体)、"Italic"(斜体)以及"Bold, Italic"(粗斜体),且区分大小写。-->
- <DefaultCharacter>?</DefaultCharacter>
- <!-- 无法识别的默认字符 -->
- <CharacterRegions>
- <!-- ASCII 基本字符:包括空格、数字、大小写英文字母和常用符号 -->
- <CharacterRegion>
- <Start> </Start> <!-- 空格 -->
- <End>~</End> <!-- ~ 符号 -->
- </CharacterRegion>
-
- <!-- 常见标点符号 -->
- <CharacterRegion>
- <Start> </Start> <!-- 一些通用标点符号 -->
- <End></End>
- </CharacterRegion>
-
- <!-- CJK 符号和标点 -->
- <CharacterRegion>
- <Start> </Start> <!-- 中文全角空格 -->
- <End>〿</End> <!-- CJK 范围的标点符号 -->
- </CharacterRegion>
- <!-- 常用汉字:基本汉字范围 -->
- <CharacterRegion>
- <Start>一</Start> <!-- 第一个常用汉字“一” -->
- <End>鿿</End> <!-- 最后一个常用汉字 -->
- </CharacterRegion>
-
- <!-- 以下是一些可能不常用的汉字和符号,可以根据需求选择是否启用 -->
-
- <!-- 汉字扩展 A 区:不常见的汉字 -->
- <!-- 如果游戏不需要显示少数民族字符或历史汉字,可以去掉这一段 -->
- <CharacterRegion>
- <Start>㐀</Start>
- <End>䶿</End>
- </CharacterRegion>
-
- <!-- 半角和全角字符:这些字符通常用于特殊的排版或字符转换 -->
- <!-- 如果不需要全角字符或一些特殊符号,可以去掉这一段 -->
- <CharacterRegion>
- <Start>＀</Start> <!-- 全角字符,如全角标点、英文字母和数字 -->
- <End>￯</End>
- </CharacterRegion>
-
- <!-- 拉丁补充字符:包括一些额外的常用字符,通常用于西欧语言 -->
- <!-- 如果只使用中文字符和标点,可以去掉这一段 -->
- <CharacterRegion>
- <Start> </Start> <!-- 不换行空格 -->
- <End>ÿ</End> <!-- ÿ 字符 -->
- </CharacterRegion>
-
- <!-- 如果你只需要常见汉字和英文字符,可以将以上部分注释掉,加载更小的字符集 -->
-
- </CharacterRegions>
- </Asset>
- </XnaContent>
复制代码
六、可能存在的问题
1. 构建失败,提示********
请把你的字体文件*.otf *.ttf,放到.spritefont所在的目录下,复制该文件的名称(不加扩展名)
打开.spritefont文件, <FontName>粘贴</FontName>再重新构建
如果仍然失败,观察一下Rebuild选项是否在第三位?如果在倒数第三位那失败就很正常了,我在复现时直接打开MGCB Editor(没错我想偷懒),就存在这个问题,请按照流程在VS Code或者VisualStudio 2022中打开
如果依然失败,额…换个字体试试,或者万能的重启
2. 控制台或者终端运行dotnet指令报错
重新安装 .NET 8 SDK,建议下载dotnet-install脚本,右键使用PowerShell安装
https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1
3. Visual Studio 2022的控制台中如果显示乱码,可以运行以下命令试一试
[Console]::OutputEncoding =[System.Text.Encoding]::UTF8
4. VSCode中没有Open inMGCB Editor 选项
请按要求添加所有拓展:
C# DevKit 、 MonoGame Content Builder (Editor)、 MonoGamefor VSCode
|