设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3595|回复: 4
打印 上一主题 下一主题

[已经解决] 显示文章的智能分次能否手动更换行数?

[复制链接]

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
跳转到指定楼层
1
发表于 2012-2-11 21:53:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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次显示。

点评

就不能对话前设置一下变量?  发表于 2012-2-11 23:36
潜水,专心忙活三次元工作了……

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6167
在线时间
6593 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2012-2-11 22:31:39 | 只看该作者
  1. def window_height
  2.     fitting_height($game_variables[2])
  3.   end
复制代码
利用变量试试

点评

试过了,因为变量初始化值是0所以就不显示文章而无限出空白对话框。  发表于 2012-2-11 23:18

还在龟速填坑中
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

3
发表于 2012-2-11 23:06:14 | 只看该作者
水区圣诞节的我做的那个,用了这个方法。你可以自己下看看吧,没加密。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
4
 楼主| 发表于 2012-2-12 00:07:44 | 只看该作者
仲秋启明 发表于 2012-2-11 22:31
利用变量试试

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

super(0, 0, window_width, window_height)

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

,所以在研究呢。
潜水,专心忙活三次元工作了……
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5463
在线时间
2562 小时
注册时间
2011-9-27
帖子
1120

极短23参与开拓者

5
发表于 2012-2-12 21:27:35 | 只看该作者
本帖最后由 怕鼠的猫 于 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,意思意思算了。

点评

你那边写三千行代码,我哪知道你是要改什么东西啊?看一遍肯定累死,当然不会了。 这边只有10行代码,看的懂,我就改改了。  发表于 2012-2-13 06:33
您到底是真不懂还是装不懂啊?群内悬赏那么多您竟然说自己不会。  发表于 2012-2-12 21:36
从平淡走向更平淡。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 03:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表