Project1

标题: 脚本里该如何调用文字的颜色描绘。 [打印本页]

作者: 文雅夕露    时间: 2018-1-27 19:39
标题: 脚本里该如何调用文字的颜色描绘。
想在脚本里描绘文字,并在指定的文字添加上颜色。
如:
text = sprintf("\c[18]赤炎魔劍\c[0]釋放出熾熱的火焰!")
结果测试发现不能描绘,并且显示怪异。

请问该怎么样调用文字的颜色描绘?
作者: 魔法丶小肉包    时间: 2018-1-27 20:02
双引号改成单引号
作者: gqxastg    时间: 2018-1-27 20:10
本帖最后由 gqxastg 于 2018-1-27 20:58 编辑

嘛 除了将双引号改为单引号之外 也可以把每个反斜杠x2 即 \ → \\
另外系统自带的战斗记录只是单纯的draw_text用不了转义符
————
现写(照着Window_Message改)了一段针对原战斗消息脚本的颜色转义符的代码,实测反斜杠x2状态下可用
脚本水平不高请见谅233
自带的Window_BattleMessage大概199行的
RUBY 代码复制
  1. self.contents.draw_text(rect, @lines[index])

替换为
RUBY 代码复制
  1. @btext = "#{@lines[index]}"
  2.     @btext.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  3.     @bcontents_x = 0
  4.     loop do
  5.       c = @btext.slice!(/./m)
  6.       case c
  7.       when nil
  8.         break
  9.       when "\x01"
  10.         @btext.sub!(/\[([0-9]+)\]/, "")
  11.         self.contents.font.color = text_color($1.to_i)
  12.         next
  13.       else
  14.         self.contents.draw_text(rect.x + @bcontents_x, rect.y, 40, rect.height, c)
  15.         c_width = contents.text_size(c).width
  16.         @bcontents_x += c_width
  17.       end
  18.     end

即可




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