赞 | 406 |
VIP | 0 |
好人卡 | 11 |
积分 | 390 |
经验 | 242285 |
最后登录 | 2024-11-26 |
在线时间 | 5719 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 39021
- 在线时间
- 5719 小时
- 注册时间
- 2006-11-10
- 帖子
- 6619
|
本帖最后由 灯笼菜刀王 于 2019-4-5 17:35 编辑
1, 你可以拉到下面看那句 self.contents.draw_text(4+x.32*y,40,32,c))
这个窗口的文字是逐字描绘的, 而字间距和行距, 就是通过这个x和y来调整
2, F1的 array类里 可以发现有这么一句"包含的模块Enumerable", 这个max和min就是Enumerable 的方法, 这两个方法在需要上下限取值的地方很好用, 要记住了,以后要考
3, 你搜索 $game_temp.choice_start 这个临时全局变量, 可以发现它有在 Interpreter 3 被赋予了选择项第一行所在的行数, 这里通过它和Y(当前的行数)对比, 当Y比它大的时候(也就是此时有选择项, 没选择项的话, 它就是99,Y(最多3)不可能比它大), 调整光标宽度为最长的那行的宽度) (注意到它的老爸是Window_Selectable么?,它当然自带光标了)
4, 如果你事件用得熟了, 就会清楚选择项和显示文章之间的那点不清不白的关系
这句的作用就是另起一行的时候, 如果这行是选择项, 就往右边缩一点
5, 这段代码的意思是, 把你输入的"显示文章"分尸, 拆成一个一个字重组, 有匹配相关代码的话就替换成对应的文字或者效果, 最后描绘到窗口上。有记得我之前说过么"就算你会用脚本了, 某些情况下用事件会比用脚本更方便" 显示文章就是属于这种情况
最后, 记得我又有你说过么: SCENE MAP 它只调用一个窗口, 然而这个窗口是老大级别的, 复杂度是别的窗口不能比的
说的就是这家伙了, 它可不是新手怪哦, 在旧手里也是属于BOSS级别的, 使用到不少高级技巧, 所以除非你想搞对话框, 否则建议还是先跳过它, 因为改造常规窗口基本是不需要用到它的方法的
|
评分
-
查看全部评分
|