赞 | 0 |
VIP | 5 |
好人卡 | 0 |
积分 | 5 |
经验 | 12441 |
最后登录 | 2017-4-21 |
在线时间 | 177 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 485
- 在线时间
- 177 小时
- 注册时间
- 2006-10-3
- 帖子
- 618
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
昨天玩了一款RMVX制作的游戏 暴风书店,FPS就7帧!?事件执行拖慢
我看了一下这个游戏的project,怪不得这么卡,原来这个 游戏系统 是用并行事件拼凑出来的。为什么事件执行的效率会这么低呢?我想如果全用脚本写系统的话,应该不会慢到这种地步。后来我又看了一下Interpreter的代码,发现在解释指令的时候 用了几十个when来判断。也就是说,每执行一个指令就需要做N个判断后才能执行对应的函数,对于一帧里要求同时执行多个事件指令的游戏来说,无疑是致命的。虽说when是按常用到的指令的顺序依次检测的,但是其中条件分歧需要经过6个关卡,而变数操作则需要经过16个关卡。
对于这种情况,可以用 数组直接寻址 的方法来优化,此方法一次性就能完成关卡检测。
伪代码如下:
- commands=[command_101,command_102,……]
- call commands[@list[@index].code]
复制代码
不过RGSS2里的code竟然不是连续的序列,这样一来就需要多余的分支来处理序列的关系了。 |
|