Project1
标题:
请问Interpreter的问题
[打印本页]
作者:
kvkv97
时间:
2014-11-3 19:33
标题:
请问Interpreter的问题
def initialize(depth = 0, main = false)
@depth = depth
@Main
= main
# 深度超过 100 级
if depth > 1
print("调用公用事件超过了限制。")
exit
end
# 清除注释器的内部状态
clear
end
def clear
@map_id = 0 # 启动时的地图 ID
@event_id = 0 # 事件 ID
@message_waiting = false # 信息结束后待机中
@move_route_waiting = false # 移动结束后待机中
@button_input_variable_id = 0 # 输入按钮 变量 ID
@wait_count = 0 # 窗口计数
@child_interpreter = nil # 子实例
@branch = {} # 分支数据
end
1,我把 if depth > 100改 if depth > 1,再设定公共事件为5个,进入游戏调用的时候,为什么游戏不提示?
2,@depth = depth和@main = main两个量被初师化为0和假,意思是什么?
3,我把@map_id = 0 改@map_id = 100的话,也不影响游戏效果,为什么这个量会没效果?
作者:
RyanBern
时间:
2014-11-3 19:55
1.depth的含义是调用深度而非事件个数,比方说公共事件1调用2,2调用3……你可以按照这种方式试验一下,会提示信息。
这样做是为了避免调用堆栈过深而导致溢出。
2.main的含义是该解释器是否是主解释器。可以查一下,好像只有地图上的解释器是主要的解释器。基本都是通过它来调用其他事件。这个和地图上NPC对话完毕后NPC会保留原始朝向的功能有关。
3.clear只是默认值设定,它的效果取决于@map_id = 0时有无特殊含义。在这里@map_id=0没什么特殊含义,只是为了保证初始化的时候它不会是nil而已。所以改成别的自然也没区别。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1