加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 紫英晓狼1130 于 2023-4-24 10:13 编辑
自动读取字体文件需要重启游戏才能生效怎么办?
插入了以下的自动读取文件夹内字体的脚本(见代码段)
但是每次重启电脑之后,就需要游戏重启之后才能正常显示字体……
其他的没什么问题,但每次关机之后都要玩家重启游戏很麻烦……
有两个思路:
①改代码:把这段代码改好,改成不用重启……
②自动重启:游戏程序开始时,再打开一个Game.exe,相当于自动重启游戏
根据2楼脚本,已经可以直接读取字体文件,无需重启
目前来看没什么问题,后续会用更多系统以及机器测试!
#============================================================================== # ■ Font #------------------------------------------------------------------------------ # 自动读取游戏字体。 #============================================================================== font_file = "/Fonts/GameFont.TTF" font_name = "GameFont" unless Font.exist?(font_name) GetCurrentDirectory = Win32API.new('kernel32', 'GetCurrentDirectoryW', 'lp', 'l') MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'llplpl', 'l') len = GetCurrentDirectory.call(0, "") buf = "\0" * (len - 1) * 2 GetCurrentDirectory.call(len, buf) len = MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, 0, 0) fa = "\0" * len * 2 MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, fa, len) path = buf + fa Win32API.new('gdi32', 'AddFontResourceW', 'p', 'l').call(path) end Font.default_name = font_name
#==============================================================================
# ■ Font
#------------------------------------------------------------------------------
# 自动读取游戏字体。
#==============================================================================
font_file = "/Fonts/GameFont.TTF"
font_name = "GameFont"
unless Font.exist?(font_name)
GetCurrentDirectory = Win32API.new('kernel32', 'GetCurrentDirectoryW', 'lp', 'l')
MultiByteToWideChar = Win32API.new('kernel32', 'MultiByteToWideChar', 'llplpl', 'l')
len = GetCurrentDirectory.call(0, "")
buf = "\0" * (len - 1) * 2
GetCurrentDirectory.call(len, buf)
len = MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, 0, 0)
fa = "\0" * len * 2
MultiByteToWideChar.call(0xFDE9, 0, font_file, -1, fa, len)
path = buf + fa
Win32API.new('gdi32', 'AddFontResourceW', 'p', 'l').call(path)
end
Font.default_name = font_name
|