×

GM教程 Gamemaker 小玉米的图文教程 玉米原创

小玉米图文教程No.0 - 中文绘制:论GMS如何绘制中文

Mage松仁玉米 Mage松仁玉米 发表于2014-06-11 11:50:47 浏览9611 评论13

13人参与发表评论

我只是稍微的研究了一下GMS的中文字体,并没深入的研究,在这里说一下,使用GMS怎么样使用ttf字体。 

如下是图文教程: 相信大家应该都知道以前使用GMS绘制中文的方法,不知道的我在这里简述一下: 

首先先创建一个字体,然后进入设置,选择一个系统字体,点击加号,从文件或者脚本中导入常用的中文字。 

方法是比较不错,但是也避免不了一些字加不进去,这里就教大家如何使用TTF字体。 

准备材料

准备材料:一个TTF字体,GMS。(GMS尼玛的是主要工具好不好!!) 

步骤说明

我这里准备了一个精简版的微软雅黑字体当作教程使用,文件名是msyh.ttf

①:打开你的GMS工程,然后右键Included files,在弹出的菜单中选择第一项Create Included Files,把自己的TTF文件添加进来。

0.jpg

这里的ttf文件名最好是使用英文名,不要使用中文名字,注意GMS只支持ttf的字体,不支持otf等,如果你的字体是其他的格式,可以转为TTF,玉米米推荐大家使用FontCreator软件来转换字体,具体转换教程:http://jingyan.baidu.com/article/03b2f78c7089a95ea237aeb4.html


②:导入字体到GMS:在任意物体的游戏开始事件中写下添加字体的代码,返回的字体索引尽量存放在全局变量里。代码如图所示。

QQ截图20150722014003.jpg

字体的大小单位是像素不要忘了,磅、像素、厘米转换的表格,大家可以进入这个页面查看:

http://jingyan.baidu.com/article/456c463b93e20d0a583144b2.html


③:添加完字体之后,在任何地方都能使用draw_text系列函数来绘制字体啦~,下面列出一个示例代码:

4.jpg


该方法绘制中文的优点:

添加字符齐全,一个函数载入使用方便,不需要导入TXT或使用脚本。


缺点:

需要一个TTF文件在EXE文件外部,动态加载速度可能会慢,占用内存可能会比较多,字体的索引是存在变量里,代码提示框不认。


傲娇玉米站特供:一些精简版的中文字体

微软雅黑 - 1.75M 点击这里下载

微软雅黑 - 4.60M 点击这里下载

[推荐]微软雅黑 - 4.78M 点击这里下载

微软雅黑 - 10.3M 点击这里下载

精简黑体 - 1.75M 点击这里下载

塞班S60手机字体 - 1.78M 点击这里下载

造字工房立黑 - 1.27M 点击这里下载

↓↓支持小站发展,点一点小广告,么么哒(づ ̄ 3 ̄)づ↓↓

BB点儿啥

访客
光仔 光仔2018-06-17 11:14:50 · 回复 感谢玉米,好文!
1M多的雅黑和推荐用4M多的雅黑区别是(字库大小?)么
光仔 光仔2018-06-17 11:17:12 · 回复 字体下载链接全部挂了....
Mage松仁玉米 Mage松仁玉米2018-06-17 13:49:27 · 回复 下载链接已修复
光仔 光仔2018-07-02 17:24:41 感谢玉米修复
Juan Juan2018-12-04 22:52:44 · 回复 玉米 为啥我font_add那里"msyh.ttf"那里是黄色的,点击运行之后就没有反应了...
Mage松仁玉米 Mage松仁玉米2018-12-04 22:53:38 · 回复 啥玩楞。。
Juan Juan2018-12-04 22:58:54 · 回复 就是关于绘制中文那里,无论是导入ttf字体还是添加了字库,运行之后依旧不显示中文...
Mage松仁玉米 Mage松仁玉米2018-12-04 22:59:26 设置绘制字体了没?
Juan Juan2018-12-04 23:05:14 · 回复 在添加字体范围那里用的默认的Arial字体,是这里的问题么?
Mage松仁玉米 Mage松仁玉米2018-12-04 23:06:08 · 回复 你在代码里面 用我图里面给的方式加字,如果再ide里面加 需要系统安装字体 然后把需要的文字一个一个加进去,用范围添加是不行的
Juan Juan2018-12-04 23:14:07 · 回复 玉米大佬方便的话能不能加个qq(358189684)啥的...我给你发下图...弄一下午了...
Mage松仁玉米 Mage松仁玉米2018-12-05 01:11:02 好的
Juan Juan2018-12-04 23:43:46 · 回复 感谢玉米大佬..问题已解决...又按照教程重新弄了几遍就好了...