Project1
标题:
Window_Message到选择项的下一行字几个问题
[打印本页]
作者:
miantouchi
时间:
2019-4-5 16:13
标题:
Window_Message到选择项的下一行字几个问题
问题1.这里面的x是指的每行离左侧的距离吗?
这里面的y是指的每行与每行的的间距吗?
问题2.
@cursor_width = [@cursor_width, x].max
这是什么意思,是比较@cursor_width, x哪个大取大的那个数值,赋值给左侧的@cursor_width吗?
我在F1里面怎么没找到相关的用法。@cursor_width = [@cursor_width, x]这个是数组对吧
但是我在Array里面没有找到.max这个方法
问题3
$game_temp.choice_start 初始值是99用y和这个值比较,是啥意思?99代表什么?
问题4
# 到选择项的下一行字
if $game_temp.choice_start == 0
x = 8
end
到选择项的下一行字是什么意思,
最后请帮忙解读下这个代码,是怎么个运行机制。
我只能看到如果遇到换行符(就是换行了如何如何),看了某侠的视频一笔带过,看不明白了这块。
1.png
(66.13 KB, 下载次数: 17)
下载附件
保存到相册
2019-4-5 15:58 上传
2.png
(64.09 KB, 下载次数: 14)
下载附件
保存到相册
2019-4-5 15:58 上传
作者:
灯笼菜刀王
时间:
2019-4-5 17:32
本帖最后由 灯笼菜刀王 于 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级别的, 使用到不少高级技巧, 所以除非你想搞对话框, 否则建议还是先跳过它, 因为改造常规窗口基本是不需要用到它的方法的
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1