设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

使用自定义特殊字体(自动安装字体)

2006-9-22 00:00| 发布者: 柳柳| 查看: 4342| 评论: 0|原作者: 亿万星辰

摘要:     作者 亿万星辰 版本  2006-9 相关网址 点此进入讨论贴 范例工程 点此下载范例工程 教程内容 字体问题往往是大家比较头痛的……有时候看到自己的字体库里有一种相
 
 

作者

亿万星辰

版本

 2006-9

相关网址

点此进入讨论贴

范例工程

点此下载范例工程



教程内容

字体问题往往是大家比较头痛的……
有时候看到自己的字体库里有一种相当合适的字体,但玩的人那里可不一定有,所以无奈的只能放在游戏的某个文件夹里,然后提醒玩家自行安装……
希望下面的方法可以起到一些效果。

思路:API
完全是从网上搜索如何靠API修改字体而得到的结论,所以不要被这三个字母吓到……

我来简单介绍下使用方法,这里只用到几行代码,所以应该不会有什么冲突。
 font = Win32API.new('gdi32','AddFontResourceA','p','L')
sendmsg = Win32API.new('user32','SendMessageA','l,l,l,l','L')
unless Font.exist?("方正粗宋简体")
  font.call("Fonts/myfont1.TTF")
  sendmsg.call(65535,29,0,0)
  print("字体安装完毕,请重新进入游戏 ^_^")
  exit
end

这里需要注意的有以下几个地方:
1、unless Font.exist?("方正粗宋简体")
  需要修改的就是括号里引号引着的字体名称,改成你要安装的字体名称即可。(别说你自己都不知道这个字体叫什么哦~)
2、font.call("Fonts/myfont1.TTF")
  你要安装的字体文件在你游戏目录里的相对路径,千万别错哦~
3、exit
  实验证明,貌似必须重新开启一次游戏窗口,才会起作用,所以……安装完毕先退出吧。
4、Main中相关部分修改:
Font.default_name = (["方正粗宋简体","黑体"])
  这个不用多说了吧,就是修改默认字体。
5、要安装多个字体时:

font = Win32API.new('gdi32','AddFontResourceA','p','L')
sendmsg = Win32API.new('user32','SendMessageA','l,l,l,l','L')
unless Font.exist?("方正粗宋简体") and Font.exist?("方正综艺简体")
  unless Font.exist?("方正粗宋简体")
    font.call("Fonts/myfont1.TTF")
    sendmsg.call(65535,29,0,0)
  end
  Graphics.update  # 主要是怕卡死
  unless Font.exist?("方正综艺简体")
    font.call("Fonts/myfont2.TTF")
    sendmsg.call(65535,29,0,0)
  end
  print("字体安装完毕,请重新启动游戏!")
  exit
end

# 这么晚了,希望我的脑袋还清醒……
6、这里说明一下,这种方法并没有直接把字体文件复制到系统下的fonts目录中,而是相当于产生了一个链接指向你游戏目录下的对应字体文件。所以只要这个字体文件的路径没有发生改变,那么系统中任何程序都可以调用到此字体;但是如果字体文件的位置改变,或者文件名改变,再或者被删除了,那么这个字体名会在下一次系统重启后自动消失。
这样就有一个小小的问题,当你通过上面所讲的方法安装好字体之后,改变字体文件的位置,或者改变它的文件名,甚至删除它之后,这个字体名是存在的,但它本身没有任何意义,所以使用此功能的各位作者们,有必要的话请提醒玩家不要随意删除或修改此文件。


 

教程的通用说明

本站发布的教程,大多经过一些测试,应该都能够实现相应功能。但不保证所有的教程都是最优化的制作方法。

相关问题,点击发布贴进行讨论。谢谢您的鼓励与支持。


鲜花

刚表态过的朋友 (0 人)

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-26 10:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部