Project1

标题: 显示文章的智能分次能否手动更换行数? [打印本页]

作者: eve592370698    时间: 2012-2-11 21:53
标题: 显示文章的智能分次能否手动更换行数?
VX ACE默认的Window_Message类有这么3个定义方法:
  1. # ● 初始化
  2.   #--------------------------------------------------------------------------
  3.   def initialize
  4.     super(0, 0, window_width, window_height)
  5.     self.z = 200
  6.     self.openness = 0
  7.     create_all_windows
  8.     create_back_bitmap
  9.     create_back_sprite
  10.     clear_instance_variables
  11.   end
  12. # ● 取得窗口的高度
  13.   #--------------------------------------------------------------------------
  14.   def window_height
  15.     fitting_height(visible_line_number)
  16.   end
  17. # ● 取得显示行数
  18.   #--------------------------------------------------------------------------
  19.   def visible_line_number
  20.     return 4
  21.   end
复制代码
我把后两个方法简化成
  1. def window_height
  2.     fitting_height(4)
  3.   end
复制代码
以前用脚本输入超过4行的文章结果被分割成多次显示,
如果把这个数值设定成2的话,事件中输入4行文章就分2次显示了。
我尝试着加入条件分歧和变量来改变这个文章输入行数的限制,似乎不好使,也就像常量一样只要赋值了再继续更改就没有效果了,请问有什么方法能让它可以自己来在再次更改吗?
也就是我弄一个变量,当它为4的时候,输入4行文章一次显示,当我把决定变量变成1的时候,输入文章也就变成分4次显示。dsu_plus_rewardpost_czw
作者: 仲秋启明    时间: 2012-2-11 22:31
  1. def window_height
  2.     fitting_height($game_variables[2])
  3.   end
复制代码
利用变量试试
作者: feizhaodan    时间: 2012-2-11 23:06
水区圣诞节的我做的那个,用了这个方法。你可以自己下看看吧,没加密。
作者: eve592370698    时间: 2012-2-12 00:07
仲秋启明 发表于 2012-2-11 22:31
利用变量试试

我就是对话之前改变了变量。
您可能还不知道我正在移植XP的FUKI对话框吧?因为VX ACE的这个智能分次显示功能挺让我头疼,按照默认只能显示4行文章,而且超过96像素的半身像也不能显示。而且我发现

super(0, 0, window_width, window_height)

中的window_height对文章内容(行数)和头像的高度有限制作用,
即使对self.height重新赋值也不行。

,所以在研究呢。
作者: 怕鼠的猫    时间: 2012-2-12 21:27
本帖最后由 怕鼠的猫 于 2012-2-12 21:32 编辑
  1. #怕鼠的猫
  2. #ACE代码
  3. # 修改消息窗口的显示行数
  4. # 2012.2.12
  5. class Window_Message
  6.   
  7.    def initialize(linenumber=4)
  8.     @linenumber=linenumber
  9.     super(0, 0, window_width, window_height)
  10.     self.z = 200
  11.     self.openness = 0
  12.     create_all_windows
  13.     create_back_bitmap
  14.     create_back_sprite
  15.     clear_instance_variables
  16.   end
  17.   
  18.   def need_new_page?(text, pos)
  19.     a=visible_line_number*line_height
  20.     pos[:y] + pos[:height] >  a && !text.empty?
  21.   end
  22.   #---------------------------
  23.   def visible_line_number
  24.       @linenumber||4
  25.   end
  26. end

  27. ################################

  28. class Scene_Map
  29.   def changelines(n)
  30.     @message_window.dispose
  31.     @message_window = Window_Message.new(n)
  32.   end
  33. end
  34. ###################################
  35. # 调用方法: SceneManager::scene.changelines(2)   就变成两行对话框了。以后持续有效。
复制代码
知道你很大方,也不用给太多分,随便给我万八千的VIP,意思意思算了。




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