Project1

标题: 让一句台词之间出现两种字体可实现吗? [打印本页]

作者: alianlord    时间: 2020-10-15 18:14
标题: 让一句台词之间出现两种字体可实现吗?
两种字体,指的是两种不同的字模。如 宋体 和 黑体。而不是大小斜体的差别。

不考虑引入图片冒充的情况。
作者: alexncf125    时间: 2020-10-15 18:39
本帖最后由 alexncf125 于 2020-10-15 18:56 编辑

二擇其一
特殊文字代码

YEA对话系统

作者: alianlord    时间: 2020-10-15 20:59
本帖最后由 alianlord 于 2020-10-15 21:01 编辑
alexncf125 发表于 2020-10-15 18:39
二擇其一
[fold=特殊文字代码]# \fn - Change the font to fontname. If you put multiple fontnames
#     ...


唉唷!!!千行大咒!!!
                                      :    :
                                      :    :
                                      :    :
                                      :    :
                                      :    :
                                      :    :
                                      :    :
                                      :    :
实在没有想到实现这个功能要动用这么大的脚本啊~~~~~~
不给个100悬赏实在说不过去,不过来不及了。
这样吧,我就把这脚本的外文百度翻译翻译。,好让后来者行个便利。
作者: alexncf125    时间: 2020-10-15 21:32
本帖最后由 alexncf125 于 2020-10-15 21:36 编辑
alianlord 发表于 2020-10-15 20:59
唉唷!!!千行大咒!!!
                                      :    :
                  ...


把相关代码抠出来很难么??
这十多行就是了
RUBY 代码复制
  1. class Window_Base < Window
  2.   alias window_base_process_escape_character_sam process_escape_character
  3.   def process_escape_character(code, text, pos)
  4.     case code.upcase
  5.     when 'FN'
  6.       text.sub!(/\[(.*?)\]/, "")
  7.       font_name = $1.to_s
  8.       font_name = Font.default_name if font_name.nil?
  9.       contents.font.name = font_name.to_s
  10.     else
  11.       window_base_process_escape_character_sam(code, text, pos)
  12.     end
  13.   end
  14. end

作者: alianlord    时间: 2020-10-15 21:43
alexncf125 发表于 2020-10-15 21:32
把相关代码抠出来很难么??
这十多行就是了

可能可以……不过我不确定。还是多谢了。
作者: alianlord    时间: 2020-10-16 22:37
alexncf125 发表于 2020-10-15 21:32
把相关代码抠出来很难么??
这十多行就是了

承蒙你给的脚本,在一句话中显示两种的字体的功能实现了。
但效果差强人意。尤其在我想用不同的字体来描绘hp、mp等数值时。
虽然我已经装载了“液晶数字式的阿拉伯数字”的字体,并放入了Fonts的文件夹。
但是使用时的数字并不会变成 液晶数字。而是变成了一种好像比宋体还要纤细的一种字体。
我确定字体改变起了作用,因为我比较了用了新数字字体的数字,和默认为黑体所显示的数字的确是不同的。
于是我猜想……这并不是脚本的问题,而是可能VxAce中支援的识别库有问题,它认不出……我试验过十种不同的中文字形,数字都会诡异的,变成那种纤细形的……可能是系统自带的 "nsimsun"
你有相关的线索能告诉我吗?
作者: srwjrevenger    时间: 2020-10-17 23:57
alianlord 发表于 2020-10-16 22:37
承蒙你给的脚本,在一句话中显示两种的字体的功能实现了。
但效果差强人意。尤其在我想用不同的字体来描 ...

这应该是 draw_text 那里的问题吧?
字体的 size 太大就会有部分不显示
字符过长就会挤在一起变形

你可以试试把人物能力值设定为1或者10看看
如果显示正常了,那么恭喜你
你需要把描绘hp什么的那些地方都修改一遍O(∩_∩)O哈哈哈~

例如下面 ## 都是加了 *2 ,使描绘的范围宽度变成2倍,
具体该加减乘除多少,慢慢调吧 ^ - ^

class Window_Base < Window
  def draw_actor_param(actor, x, y, param_id)
    change_color(system_color)
    draw_text(x, y, 120*2, line_height, Vocab::param(param_id)) ##
    change_color(normal_color)
    draw_text(x + 120, y, 36*2, line_height, actor.param(param_id), 2) ##
  end
end #class

PS:
1.真的太长/太大的话,连x,y那里也得调... ...
2.目前只能想到这样直接改,如果用alias别名,会把那些不对的也显示出来
作者: alianlord    时间: 2020-10-18 08:23
srwjrevenger 发表于 2020-10-17 23:57
这应该是 draw_text 那里的问题吧?
字体的 size 太大就会有部分不显示
字符过长就会挤在一起变形

我试著把字体大小设为60,但数字的显现还是一样。还是很感谢大大提供思路。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1