Project1

标题: 请问怎么调整字号,以及能否只调整窗口位置为中时的长宽 [打印本页]

作者: 艾莉萨贝斯    时间: 2015-4-1 13:50
标题: 请问怎么调整字号,以及能否只调整窗口位置为中时的长宽
我想把对话文字的字号调小,没有搜索到能理解的回答……
还希望把窗口位置为“中”时候的长宽调小,因为获得物品的消息很短,窗口显得太大了
搜到了一个对话框加强型脚本,但功能太多了看不明白,而且也用不到那么多,用自带的脚本能做到吗……
作者: 艾莉萨贝斯    时间: 2015-4-3 20:07
顶一下T^T
这个问题也不是一个人问了,但我搜到的帖子不是看不懂就是零回复,难道改字号问题有零回复debuff吗
作者: 欧买歌    时间: 2015-4-3 20:35
  1. Font.default_size = 字号
复制代码
  1. Window_Message < Window_Selectabl
  2. def initialize
  3. if $game_system.message_position == 1
  4. super(80, 304, 窗口宽, 窗口高)
  5. else
  6. super(80, 304, 480, 160)
  7. end
  8. self.contents = Bitmap.new(width - 32, height - 32)
  9. self.visible = false
  10. self.z = 9998
  11. @fade_in = false
  12. @fade_out = false
  13. @contents_showing = false
  14. @cursor_width = 0
  15. self.active = false
  16. self.index = -1
  17. end
  18. end
复制代码

作者: 艾莉萨贝斯    时间: 2015-4-4 16:30
欧买歌 发表于 2015-4-3 20:35

非常感谢,字号已经可以调整了!但是后一个脚本不知道怎么用,我用它覆盖了那个脚本原来的位置,改了数字,但是没有变化
作者: RyanBern    时间: 2015-4-5 09:47
单纯改字号(例如使用Font.default_size)只能改变字的大小,但不能改变行间距。
要改变行间距的话需要修改原Window_Message的144行
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)最后的那个32.
另外,自动调整窗口长宽的代码如下(3L的脚本应该无法实现此效果):
RUBY 代码复制
  1. class Window_Message
  2.   def reset_window
  3.     if $game_temp.in_battle
  4.       self.y = 16
  5.     else
  6.       case $game_system.message_position
  7.       when 0  # 上
  8.         self.y = 16
  9.       when 1  # 中
  10.         if $game_temp.message_text != nil
  11.           text = $game_temp.message_text.clone
  12.           begin
  13.             last_text = text.clone
  14.             text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  15.           end until text == last_text
  16.           text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  17.             $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  18.           end
  19.           text.gsub!(/\\\\/) { "\000" }
  20.           text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "" }
  21.           text.gsub!(/\\[Gg]/) { "" }
  22.           text.gsub!("\000") { "\\" }
  23.           texts = text.chomp.split("\n")
  24.           c_width = texts.size == 0 ? 32 : 8 + texts.map{|s| self.contents.text_size(s).width}.max
  25.           c_height = texts.size == 0 ? 32 : texts.size * 32
  26.           self.width = 32 + c_width
  27.           self.height = 32 + c_height
  28.           self.contents.dispose if self.contents != nil
  29.           self.contents = Bitmap.new(c_width, c_height)
  30.           self.x = 320 - width / 2
  31.           self.y = 240 - height / 2
  32.         else
  33.           self.y = 160
  34.         end
  35.       when 2  # 下
  36.         self.y = 304
  37.       end
  38.     end
  39.     if $game_system.message_frame == 0
  40.       self.opacity = 255
  41.     else
  42.       self.opacity = 0
  43.     end
  44.     self.back_opacity = 160
  45.   end
  46. end

以上这段插入到Main前即可,此脚本和所有对话框脚本均冲突,如果使用对话框脚本请删除此脚本。




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