查看: 2036|回复: 4

[已经解决] “关联帮助窗口”脚本疑问(已修改)

[复制链接]

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
发表于 2013-7-23 21:02:20 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 恋′挂机 于 2013-7-24 09:21 编辑

默认脚本Scene_Item中有这么一行(忽略注释)
  1.     # 关联帮助窗口
  2.     @item_window.help_window = @help_window
复制代码
为什么这一句脚本可以把窗体和帮助关联起来呢?
感谢各位大大!

各位大大,我昨天关电脑的时候,突然发现我问的问题连我“自己”都看不明白!!!
是这样的,
  1.     # 关联帮助窗口
  2.     @item_window.help_window = @help_window
复制代码
在它的父类Window_Selectable有这么一个方法help_window=
  1.   def help_window=(help_window)
  2.     @help_window = help_window
  3.     # 刷新帮助文本 (update_help 定义了继承目标)
  4.     if self.active and @help_window != nil
  5.       update_help
  6.     end
  7.   end
复制代码
  1. @item_window.help_window = @help_window
复制代码
所以这句就是,@item_window调用help_window=这个方法并且带入参数@help_window
但是
  1. @help_window = help_window
复制代码
这句如何理解呢?每个类的@help_window不是不能共享么

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2013-7-23 22:34:46 | 显示全部楼层
在这句脚本之上还有一句创建帮助窗口,大概像:@help_window =  Window_Help.new 之类
而@item_window.help_window = @help_window 所关联的便是之前创建的那个帮助窗口。

点评

感谢回答  发表于 2013-7-24 08:45
回复

使用道具 举报

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
 楼主| 发表于 2013-7-24 09:09:04 | 显示全部楼层
人工“置顶”
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-7-24 09:14:28 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2013-7-24 12:01 编辑

去看看 Window_Item , Window_Skill ,,,等的最下面,
  1. def update_help
  2.     @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  3.   end
复制代码
父类 Window_Selectable 定义好了 @help_window  以及其写入的方法,子类 Window_Item , Window_Skill ,,,等直接调用。

在 Arrow_Base 里也是同样的情况。

@item_window.help_window = @help_window    和  @help_window = help_window

这两个  @help_window    是不一样的。

评分

参与人数 2星屑 +112 收起 理由
︶ㄣ牛排ぶ + 100 认可答案
恐惧剑刃 + 12 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-7-24 09:30:00 | 显示全部楼层
@help_window = Window_Help.new
@item_window.help_window = @help_window

所以,不要被两个 help_window 给迷惑了。举个不太恰当的例子:
@atk = 100
$game_actors[1].atk = @atk

这两个的道理还是差不多的。

点评

非常感谢  发表于 2013-7-24 09:50
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部