查看: 3303|回复: 3

[已经解决] [已解决]Window_Command类当中小疑问?

[复制链接]
梦石
0
星屑
15041
在线时间
2230 小时
注册时间
2019-1-24
回帖
964

R考场第七期纪念奖

发表于 2019-11-25 21:36:57 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 miantouchi 于 2019-11-26 08:57 编辑

两个问题,
1.为什么我在Window_Command类的initialize方法里面加
@colum_max 这个代码后面跟着对应数字,光标就能改变每行数量?我也没发现象系统在哪里
调用Window_Command类的@column_max变量啊。
2.为什么我在当中重新定义了update_cursor_rect方法,会使光标改变,一样的问题,我也没发现,
统在哪里调用Window_Command类的update_cursor_rect方法呀。

我看了下他的父类是Window_Selectable,但是我也没发现调用父类的迹象啊。
1.png
2.png
3.png
梦石
0
星屑
1027
在线时间
72 小时
注册时间
2019-11-25
回帖
12
发表于 2019-11-25 22:11:05 | 显示全部楼层
你……知道继承么……

Ruby类的继承 - tardis - 博客园
https://www.cnblogs.com/tardis/p/4004438.html

@column_max和update_cursor_rect都是父类的方法,要简单地说的话这个Window_Command子类就是添加了方法以及重写或修改了部分父类方法,原本的父类方法自动继承可以使用

点评

更正:@column_max 不是【方法】,而是实例变量。  发表于 2019-11-25 22:23

评分

参与人数 1赞 +1 收起 理由
miantouchi + 1 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2019-11-25 22:27:45 | 显示全部楼层
问题 1:根本原因是父类 Window_Selectable 的 update_cursor_rect 方法里利用了 @column_max 计算光标的位置,宽度等信息。
这个方法在 update 方法中调用,Window_Command 继承了父类的方法。而在 Scene_Title 执行的过程中直接调用了 @command_window.update

问题 2:重写了 update_cursor_rect 方法会使得父类的方法失效。因此调用 update 的时候实际是调用了重写后的方法。

评分

参与人数 1赞 +1 收起 理由
miantouchi + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部