# 绘制中文不显示
# 现象
刚开始使用 GM 的时候,需要在文本框里面输出对话(即在 draw_GUI 中调用 draw_text_ext 方法)。
英文正常显示,换成中文就不显示了,会替换成空方框 (□),如下所示:

# 原因
查阅资料发现由于没有添加中文的字符范围,所以对于没有的字符使用默认字符 □ 显示。
# 解决方案
- 在【编辑字体】页面中点击【Add】按钮。

- 按先后顺序点击【From Code】和【Add Range】。

- 添加成功之后红色方框内会显示对应字符。

# 正常效果展示

# 一些注意点
-
不能选择西文等一些不支持中文的字体。
-
编辑页面右上角【Sample】不可选择的字体,就算支持中文,也无法正常显示(原因未知),宋体、微软雅黑均是。

# 碰撞问题
# 现象
游戏中需要处理人物和物体之间的碰撞。
默认情况下 sprite 的碰撞形状都是覆盖全部范围长方形,为了实现真实的碰撞效果,我们往往需要修改 sprite 的 碰撞掩码(Collision Mask)。
比如我下面这张图就是从 obj_player 进入 Collision Mask 配置项,并完成修改。

进入游戏测试发现人物向下走正常。

但是向上走的时候出问题了,正常情况这里应该是靠到主角的腰部才走不过去,现在头部就上不去了。

# 原因
因为从 obj_player 进入修改的 sprite 是 obj 默认的图,也就是向下的待机图。但是向上走的时候换成了向上的行走图,改图没有修改,所以呈现这样的效果。

# 解决方案
修改所有与人物相关的图(上下左右、待机行走)的 Collision Mask 即可。

# 正常效果展示

# 物体遮掩问题
# 现象
在 rpg 游戏中,视角一般为俯视,所以会存在以下现象:
- 物体重心在人物重心下方,物体遮挡人物。
- 物体重心在人物重心上方,人物遮挡物体。
如下图所示:

但在测试过程出现了这样的现象:

# 原因
由于我设置过人物和物体 parent 的 depth 均为 -y 了,那只能是 sprite 的重心没有设置正确。
# 解决方案
Origin 点用于设置重心,有如下规则:
- 对于角色,将 Origin 点设置在角色的脚部,确保角色在移动和旋转时不会偏离地面。

- 对于物体,将 Origin 点设置在其重心位置。

# 正常效果展示
(人物已处于房子后面)
