脚本里该如何调用文字的颜色描绘。

查看数: 2433 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-1-27 19:39

正文摘要:

想在脚本里描绘文字,并在指定的文字添加上颜色。 如: text = sprintf("\c[18]赤炎魔劍\c[0]釋放出熾熱的火焰!") 结果测试发现不能描绘,并且显示怪异。 请问该怎么样调用文字的颜色描绘? ...

回复

gqxastg 发表于 2018-1-27 20:10:59
本帖最后由 gqxastg 于 2018-1-27 20:58 编辑

嘛 除了将双引号改为单引号之外 也可以把每个反斜杠x2 即 \ → \\
另外系统自带的战斗记录只是单纯的draw_text用不了转义符
————
现写(照着Window_Message改)了一段针对原战斗消息脚本的颜色转义符的代码,实测反斜杠x2状态下可用
脚本水平不高请见谅233
自带的Window_BattleMessage大概199行的
[pre lang="ruby"]    self.contents.draw_text(rect, @lines[index])[/pre]
替换为
[pre lang="ruby"]    @btext = "#{@lines[index]}"
    @btext.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
    @bcontents_x = 0
    loop do
      c = @btext.slice!(/./m)
      case c
      when nil
        break
      when "\x01"
        @btext.sub!(/\[([0-9]+)\]/, "")
        self.contents.font.color = text_color($1.to_i)
        next
      else
        self.contents.draw_text(rect.x + @bcontents_x, rect.y, 40, rect.height, c)
        c_width = contents.text_size(c).width
        @bcontents_x += c_width
      end
    end[/pre]
即可

点评

谢谢前辈的帮忙,前辈太谦虚啦。  发表于 2018-1-27 21:27
啊我的锅x Window_BattleMessage的父类就是Window_Message 我这里刚写了一段针对自带战斗消息使用颜色转义符的代码 更新在回复里了  发表于 2018-1-27 20:50
虽然没怎么用过VX 目测很麻烦 不像VA在Window_Base里有draw_text_ex来的快捷 还是用现成脚本或者Window_Message魔改比较靠谱呢  发表于 2018-1-27 20:17
唔...没有办法支持吗...据说VA就可以支持,VX没有办法修改出来吗?  发表于 2018-1-27 20:14

评分

参与人数 2星屑 +80 赞 +1 收起 理由
正太君 + 80 认可答案
文雅夕露 + 1 十分感谢

查看全部评分

魔法丶小肉包 发表于 2018-1-27 20:02:36
双引号改成单引号

点评

嗯...显示正常了,但文字颜色还是无法描绘出来...  发表于 2018-1-27 20:07

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部