Project1

标题: 请问有没有什么方法可以让文字竖着出现? [打印本页]

作者: ATQW3TQFQ    时间: 2014-7-31 21:58
标题: 请问有没有什么方法可以让文字竖着出现?
因为配合游戏的CG觉得竖着出效果会好一些,请问有没有方法?难实现吗?
作者: zhaoxun96    时间: 2014-7-31 22:06
用图片,或者用自带动画做一个,不是什么难事...为什么你们都要把对话框改来改去的,它只是个孩子.....
作者: 喵呜喵5    时间: 2014-7-31 22:59
本帖最后由 喵呜喵5 于 2014-7-31 23:23 编辑
  1. =begin
  2. ===============================================================================
  3.   竖排显示对话 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   指定的开关打开的时候,使用竖排的方式显示对话
  7.   
  8.   竖排显示对话和部分对话脚本兼容性并不好,请将脚本插入到其他对话脚本之上
  9.   
  10.   只是随手写的脚本,暂时并不会对脚本的功能(以及代码的换行)进行太多的调整
  11.   
  12. =end
  13. $m5script ||= {}
  14. $m5script["M5VerticalText"] = 20140731
  15. module M5VerticalText
  16. #==============================================================================
  17. # 设定部分
  18. #==============================================================================
  19.   
  20.   LINE = 11
  21.   
  22.   # 这里修改使用竖排文字时对话框的行数
  23.   
  24.   SWI = 1
  25.   
  26.   # 对应编号的开关开启时脚本才生效
  27.   
  28.   OFFSET = 5
  29.   
  30.   # 如果你对脚本的自动换列功能不满意(太早换列或者太迟换列),调整这个数字
  31.   
  32. #==============================================================================
  33. # 设定结束
  34. #==============================================================================
  35. end
  36. class Window_Message
  37.   alias m5_20140731_clear_flags clear_flags
  38.   def clear_flags
  39.     m5_20140731_clear_flags
  40.     @m5_line_width = 0
  41.   end
  42.   alias m5_20140731_visible_line_number visible_line_number
  43.   def visible_line_number
  44.     $game_switches[M5VerticalText::SWI] ? M5VerticalText::LINE : m5_20140731_visible_line_number   
  45.   end
  46.   alias m5_20140731_process_normal_character process_normal_character
  47.   def process_normal_character(c, pos)   
  48.     m5_update_window_setting if fitting_height(visible_line_number) != self.height
  49.     return m5_20140731_process_normal_character(c, pos) unless $game_switches[M5VerticalText::SWI]
  50.     text_width = text_size(c).width
  51.     text_height = text_size(c).height
  52.     @m5_line_width = [@m5_line_width,text_size(c).width].max   
  53.     draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
  54.     if pos[:y] + text_height > contents.height - standard_padding * 2 + M5VerticalText::OFFSET
  55.       pos[:x] += @m5_line_width
  56.       pos[:y] = 0
  57.       @m5_line_width = 0
  58.     else
  59.       pos[:y] += text_height
  60.     end
  61.     wait_for_one_character
  62.   end
  63.   def m5_update_window_setting   
  64.     self.height = fitting_height(visible_line_number)
  65.     create_contents
  66.     update_placement
  67.   end
  68.   alias m5_20140731_process_new_line process_new_line
  69.   def process_new_line(text, pos)
  70.     return m5_20140731_process_new_line(text, pos) unless $game_switches[M5VerticalText::SWI]
  71.     pos[:x] += @m5_line_width
  72.     pos[:y] = 0
  73.     @m5_line_width = 0
  74.   end
  75. end
复制代码





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