Project1

标题: [已解决]Window_Command类当中小疑问? [打印本页]

作者: miantouchi    时间: 2019-11-25 21:36
标题: [已解决]Window_Command类当中小疑问?
本帖最后由 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, 下载次数: 16)

1.png

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

2.png

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

3.png

作者: YukiYukidesu    时间: 2019-11-25 22:11
你……知道继承么……

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

@column_max和update_cursor_rect都是父类的方法,要简单地说的话这个Window_Command子类就是添加了方法以及重写或修改了部分父类方法,原本的父类方法自动继承可以使用
作者: RyanBern    时间: 2019-11-25 22:27
问题 1:根本原因是父类 Window_Selectable 的 update_cursor_rect 方法里利用了 @column_max 计算光标的位置,宽度等信息。
这个方法在 update 方法中调用,Window_Command 继承了父类的方法。而在 Scene_Title 执行的过程中直接调用了 @command_window.update

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1