Project1
标题:
脚本在游戏中到底是如何生效的?
[打印本页]
作者:
至高无上
时间:
2014-6-4 12:19
标题:
脚本在游戏中到底是如何生效的?
我发现无论是内置的脚本,还是外来的插件,其中除了定义类,就是在定义方法,偶尔还会有定义模块。我有些想不通,这样的脚本,是如何在游戏中实现众多功能的?即使是学习完毕了ruby的基本语法,但是对于如何编写脚本依旧摸不清头脑
作者:
鑫晴
时间:
2014-6-4 12:57
本帖最后由 鑫晴 于 2014-6-4 12:58 编辑
导航栏→技术指南→脚本入门 基础篇→类定义
好像就是这里有介绍,——脚本废如是说
作者:
铃仙·优昙华院·因幡
时间:
2014-6-5 19:44
脚本文件(Scripts.rvdata) 会在整个 VX 生成基础的东西(比如 DxDraw, DxSound 之类的)之后得到调用.
脚本的运行先是从上到下的检查语法,然后实现.
如果遇到 class , def 等定义的时候只检测语法, 直到遇到一个没有定义的部分才开始执行.
你看 main 脚本之前的所有脚本, 都是有一个 class 定义的. 如果你在main 之前的任意一个地方新建一个空白的脚本页, 输入 exit . 你会发现 main 根本就不执行.
然后再 mian 里面有一句, $scene = Scene_Title.new 这样就会把脚本的执行权限交给 Scene_Title 这个脚本.
然后调用 $scene.main while $scene != nil . 你去看看 Scene_Base 的 main 方法就知道, 那是一个无限循环的.
作者:
Password
时间:
2014-6-5 21:34
编写脚本的话还是多实践比看完F1重要,【反正我一般是遇到不会的才去看F1 → →
实践的话可以去试试P叔考场什么的【题外话:假期的时候考场该重新开了吧 → →
作者:
moy
时间:
2014-6-5 23:47
本帖最后由 moy 于 2014-6-5 23:51 编辑
补充一点吧,除了底层的和操作系统以及用户的互动,其他所有的游戏内的响应都是由脚本完成的。
整个制作工具事实上为制作者提供的是无数直接修改游戏内容的接口,通过录入这些修改并存进文件,就形成了所有的*.rvdata。
这些数据在实际运行中分别交给各个“部门”根据各自的职能协调工作。
以VA的RGSS3来说,它由新添的各种Manager模块进行整体调度,由Scene来承载各种交互响应,由Window来规划窗口和文字,由Game来处理内部数据,由Sprite来实现实际的像素描绘。
举个例子来说,我们常用的事件,其实是由Game_Map中实例化的Game_Event作为载体实现的。事件的描绘交由Sprite_Character运作,触发的实现则是Game_Event,而事件页的那些各种选项,则是由在Game_Event和CommonEvent等内部运作的Game_Intepreter来实现的。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1