查看: 1574|回复: 4

[已经解决] 脚本在游戏中到底是如何生效的?

[复制链接]
梦石
0
星屑
50
在线时间
346 小时
注册时间
2010-12-12
回帖
182
发表于 2014-6-4 12:19:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我发现无论是内置的脚本,还是外来的插件,其中除了定义类,就是在定义方法,偶尔还会有定义模块。我有些想不通,这样的脚本,是如何在游戏中实现众多功能的?即使是学习完毕了ruby的基本语法,但是对于如何编写脚本依旧摸不清头脑
梦石
1
星屑
7574
在线时间
2650 小时
注册时间
2013-8-23
回帖
2152

开拓者

发表于 2014-6-4 12:57:22 | 显示全部楼层
本帖最后由 鑫晴 于 2014-6-4 12:58 编辑

导航栏→技术指南→脚本入门  基础篇→类定义

好像就是这里有介绍,——脚本废如是说
回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2014-6-5 19:44:33 | 显示全部楼层
脚本文件(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 方法就知道, 那是一个无限循环的.

点评

class, def等也是表达式,也是执行语句  发表于 2014-6-6 19:00

评分

参与人数 1星屑 +80 收起 理由
丿梁丶小柒 + 80 我很赞同

查看全部评分

回复

使用道具 举报

送快递的水表员

梦石
10
星屑
5259
在线时间
3304 小时
注册时间
2012-6-27
回帖
7028

开拓者贵宾

发表于 2014-6-5 21:34:01 | 显示全部楼层
编写脚本的话还是多实践比看完F1重要,【反正我一般是遇到不会的才去看F1 → →
实践的话可以去试试P叔考场什么的【题外话:假期的时候考场该重新开了吧 → →
回复

使用道具 举报

无节操

梦石
0
星屑
608
在线时间
795 小时
注册时间
2009-2-6
回帖
3910

开拓者贵宾

发表于 2014-6-5 23:47:03 | 显示全部楼层
本帖最后由 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来实现的。

评分

参与人数 1星屑 +80 收起 理由
丿梁丶小柒 + 80 我很赞同

查看全部评分

Brandnew day, Brandnew Life
                             规 实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部