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

Project1

 找回密码
 注册会员
搜索
查看: 1006|回复: 2
打印 上一主题 下一主题

[已经解决] 【字体读取】读取字体文件需要重启游戏才能生效怎么办

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3841
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
跳转到指定楼层
1
发表于 2023-4-24 09:42:31 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 紫英晓狼1130 于 2023-4-24 10:13 编辑

自动读取字体文件需要重启游戏才能生效怎么办?
插入了以下的自动读取文件夹内字体的脚本(见代码段)
但是每次重启电脑之后,就需要游戏重启之后才能正常显示字体……
其他的没什么问题,但每次关机之后都要玩家重启游戏很麻烦……
有两个思路:
改代码:把这段代码改好,改成不用重启……
自动重启:游戏程序开始时,再打开一个Game.exe,相当于自动重启游戏

根据2楼脚本,已经可以直接读取字体文件,无需重启
目前来看没什么问题,后续会用更多系统以及机器测试!

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Font
  3. #------------------------------------------------------------------------------
  4. #  自动读取游戏字体。
  5. #==============================================================================
  6.   font_file = "/Fonts/GameFont.TTF"
  7.   font_name = "GameFont"
  8.   unless Font.exist?(font_name)
  9.     GetCurrentDirectory = Win32API.new('kernel32', 'GetCurrentDirectoryW', 'lp', 'l')
  10.     MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'llplpl', 'l')
  11.     len = GetCurrentDirectory.call(0, "")
  12.     buf = "\0" * (len - 1) * 2
  13.     GetCurrentDirectory.call(len, buf)
  14.     len = MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, 0, 0)
  15.     fa = "\0" * len * 2
  16.     MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, fa, len)
  17.     path = buf + fa
  18.     Win32API.new('gdi32', 'AddFontResourceW', 'p', 'l').call(path)
  19.   end
  20.   Font.default_name = font_name
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-5-14 01:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表