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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14616
在线时间
2196 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2019-11-25 21:36:57 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 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 (595.56 KB, 下载次数: 34)

1.png

2.png (64.98 KB, 下载次数: 35)

2.png

3.png (66.67 KB, 下载次数: 28)

3.png

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1027
在线时间
72 小时
注册时间
2019-11-25
帖子
12
2
发表于 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 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 13:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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