赞 | 1 |
VIP | 20 |
好人卡 | 8 |
积分 | 3 |
经验 | 6181 |
最后登录 | 2022-8-5 |
在线时间 | 271 小时 |
Lv2.观梦者 神隐的主犯
- 梦石
- 0
- 星屑
- 289
- 在线时间
- 271 小时
- 注册时间
- 2008-2-22
- 帖子
- 7691
|
本帖最后由 魔女真利亞 于 2010-12-19 10:12 编辑
Window 类集
基本语法:
- class Window_XXX < Window_Base
- def initialize
- super(x, y, w, h)
- ...
- end
- def refresh
- ...
- end
- end
复制代码- 1. 父类
一般的窗口可以分成两大类. 一个是带有光标的窗口, 还有一个就是普通的窗口. 两者的父类是不一样的. 一般带有光标的窗口都是直接或者间接的继承于 Window_Selectable . 不带有光标的窗口继承于 Window_Base. 不过需要了解的一点是,所有的窗口的最终父类只能是 Window 类.. 但是 Window 的实现是在其 dll 里的, 所以无源码. - 2. 初始化
对于无光标的窗口: super 都是需要写的. 参数看父类就可以了.
对于有光标的窗口: 除了要使用 super 以外, 还需要注意这几个变量.
- @item_max: 选择项的总个数.
- @column_max: 列数. 也就是说如果等于 2 的话, 会出现左右分开描绘选择项的效果. 具体的可以参照 Scene_Item.
- @index: 当前选择项. 用于取得当前玩家选择的序号.(注意:不是选项内容, 而是序号)
- 3. 刷新
refresh 方法不是必须的. 大多数的 Window 的 refresh 方法只是在 初始化或者需要刷新的时候才调用. 而不像 update 方法那样每帧调用. refresh 方法里常用的语句就是清除画布全部内容.只有这样,在接下来需要描绘的内容才不会重复的画在窗口上. - 4. 描绘
窗口类的描述都是在Window_Base 里创建的一个画布上进行的. 也就是 self.contents . 常用的描绘方法参考 Window_Base .需要注意的是, 窗口内容描绘是非常占用刷新时间的. 一般一个描绘内容没帧刷新的话, FPS 就惨不忍睹了. - 5. 常用属性
窗口类常用属性请查找 F1 帮助里的 Window 部分. 所有的 Window 类都可以使用里面的属性.
|
|