Project1
标题:
请问:解释器里面的一个量的值
[打印本页]
作者:
kvkv97
时间:
2021-4-13 20:41
标题:
请问:解释器里面的一个量的值
请问:解释器里面的一个量的值
#--------------------------------------------------------------------------
# ● 公共事件
#--------------------------------------------------------------------------
def command_117
# 获取公共事件
common_event = $data_common_events[@parameters[0]]
# 公共事件有效的情况下
if common_event != nil
# 生成子解释器
@child_interpreter = Interpreter.new(@depth + 1)
@child_interpreter.setup(common_event.list, @event_id)
end
# 继续
return true
end
请问:我P @event_id的时候,值为1,但是弄不清楚怎么来的。请问,它在什么地方被赋值了?
作者:
kvkv97
时间:
2021-4-13 20:44
另外:@child_interpreter 为什么能在解释器的方法update中调用,怎么不会造成栈过深? 在update中,@child_interpreter.update,怎么不会造成栈过深?
作者:
百里_飞柳
时间:
2021-4-13 21:23
@event_id 就是当前地图上正在执行的那个事件的id
在解释器的 setup 方法中被传入和记录
因为在 update 方法里,特别对 @child_interpreter 进行了判定
如果存在子解释器,就更新子解释器,然后return,不进行自己的更新
不报错是因为不是反复调用自己的update,不构成闭环
具体可以这样说:
A 和 B 都是巡逻的狗(事件解释器)
A 在认真巡逻(在更新事件指令)
忽然发生紧急情况,但是 A 不能走开,于是让 B 去看看(调用公共事件,执行公共事件里的指令)
等到 B 看完回来了(公共事件执行完),A 继续之前的巡逻
所以并没有任何递归
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1