查看: 2082|回复: 7

[已经过期] 关于关联窗口

  [复制链接]
梦石
0
星屑
55
在线时间
295 小时
注册时间
2008-5-24
回帖
469
发表于 2011-7-5 21:40:53 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 龙腾天下 于 2011-7-6 15:53 编辑

如下:   
   # 生成帮助窗口、物品窗口
    @help_window = Window_Help.new
    @item_window = Window_Item.new
    # 关联帮助窗口
    @item_window.help_window = @help_window  

谁能说说怎么样关联窗口?还有以上红色字体中,是不是把help_window变成方法了?(若是在哪里定义了?若不是,那这是什么…………)

又假如在哪个类中定义了,那么从外面的不同类中可以调用?(假如不是父类与子类的关系)

点评

那么下次记得发提问帖,可以自己认可  发表于 2011-7-5 22:37

老黄鸡

梦石
4
星屑
45788
在线时间
7954 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-7-5 22:00:03 | 显示全部楼层
本帖最后由 fux2 于 2011-7-5 22:08 编辑

只是把@item_window的help_window属性赋值成一个WIndow类而已,就是@help_window  
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
55
在线时间
295 小时
注册时间
2008-5-24
回帖
469
 楼主| 发表于 2011-7-5 22:09:34 | 显示全部楼层
fux2 发表于 2011-7-5 22:00
@item_window只是把help_window赋值成一个WIndow类而已,就是@help_window

呃……算我不够聪明,我不是很明白……

把help_window赋值成一个WIndow类,那么(用数学几何的角度,以下“=”是真的等于号):

@item_window.help_window = @help_window =  Window_Help.new

是这样吗?
只是 @item_window.help_window 这里不太明白。能否再解释一下?
前方
迷茫
后方
已不在
回复

使用道具 举报

勥

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
回帖
1674

开拓者

发表于 2011-7-5 22:12:31 | 显示全部楼层
首先声明我不熟悉RUBY以及RGSS,完全现看现卖。
我认为这里可以理解为将@item_window.help_window指向先前建立的@help_window这个对象,从而可以通过调用@item_window.help_window来调用先前建立的@help_window对象。
我感觉并不仅仅是将help_window的属性附了过去,而是直接指向,这里包括属性、方法等等都过关联去了。(说白了就是让@item_window.help_window指向了@help_window的对象地址)

help_window这个有事先定义的:
1.通过这句"@item_window = Window_Item.new",我们找"Window_Item"这个脚本。
2.在"Window_Item"中,并没有发现"help_window"关键字。接下来通过第七行的"class Window_Item < Window_Selectable"去找"Window_Selectable"脚本
3.在"Window_Selectable"脚本中,我们看到12行"attr_reader   :help_window",还有下面有def定义"def help_window=(help_window)"。

这样的话,我做了一个实验,在"Window_Selectable"中加入:
attr_reader   :hell
def hell=(hell)
      p "已经关联"
end
发现在"Scene_Item"中,你那红色句的下一行加入"@item_window.hell = @help_window"就可以成功输出"已经关联"了。
不知道这是否解答了你"谁能说说怎么样关联窗口?"的问题。
( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45788
在线时间
7954 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-7-5 22:19:08 | 显示全部楼层
本帖最后由 fux2 于 2011-7-5 22:19 编辑
龙腾天下 发表于 2011-7-5 22:09
呃……算我不够聪明,我不是很明白……

把help_window赋值成一个WIndow类,那么(用数学几何的角度,以 ...


@item_window本身就有一个help_window属性,属性跟变量差不多,要是不知道赶紧去看手册

点评

嗯嗯,版主不缺分,让我把分给了熊猫吧。也感谢你。  发表于 2011-7-5 22:35
原来如此  发表于 2011-7-5 22:27
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

勥

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
回帖
1674

开拓者

发表于 2011-7-5 22:20:59 | 显示全部楼层
龙腾天下 发表于 2011-7-5 22:09
呃……算我不够聪明,我不是很明白……

把help_window赋值成一个WIndow类,那么(用数学几何的角度,以 ...

@item_window.help_window = @help_window =  Window_Help.new
@help_window实际上是一个对象地址存储变量,存储的值即为Window_Help.new的地址。
@item_window.help_window 也是一个对象地址存储变量
@item_window.help_window = @help_window
也就是将@help_window的值赋给@item_window.help_window
@item_window.help_window <=赋值 @help_window 指向=>  Window_Help.new

本人是RGSS+RUBY菜鸟

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
fux2 + 200 + 2 答案

查看全部评分

( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)
回复

使用道具 举报

梦石
0
星屑
55
在线时间
295 小时
注册时间
2008-5-24
回帖
469
 楼主| 发表于 2011-7-5 22:34:07 | 显示全部楼层
熊猫 发表于 2011-7-5 22:12
首先声明我不熟悉RUBY以及RGSS,完全现看现卖。
我认为这里可以理解为将@item_window.help_window指向先前 ...

还真是有点难以理解。那参数也关联过去了?
前方
迷茫
后方
已不在
回复

使用道具 举报

勥

梦石
0
星屑
72
在线时间
673 小时
注册时间
2006-10-3
回帖
1674

开拓者

发表于 2011-7-5 22:49:11 | 显示全部楼层
龙腾天下 发表于 2011-7-5 22:34
还真是有点难以理解。那参数也关联过去了?

参数??Window_Help.new本身没有任何参数啊?
是函数?方法?
上面提到了直接指向之前的那个对象(Window_Help.new),所以说用起来都是一样的。
@item_window.help_window.xxx
@help_window.xxx
完全相同。
如果想要知道关联窗口间是怎样互动的,可以参照
脚本"Window_Selectable"中的第87行。
还有
脚本"Window_Item"中的第100行。

点评

感谢。完结。  发表于 2011-7-6 11:23
哦。  发表于 2011-7-6 11:16
( ส็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ω ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้【看猫君玩,我也搞一只】)
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部