尝试用VB做个简易脚本引擎,大神来指点下.
vb吧
全部回复
仅看楼主
level 7
随心网络 楼主
如果允许用户执行部分简易脚本如下
rem 野外活动
delay 1000
移动到 123,456
跳舞开始
if hp=0 then
回家
goto 准备出发
else
goto 野外活动
end if
rem 准备出发
对话 小白兔
对话选择 去森林
if 当前地图=森林 then
goto 野外活动
else
移动到 11,22
goto 准备出发
end if
.....
遇到最大的问题是需要一个延时函数delay,一般的网上的例子都加了doevents 会打乱流程
但不加doevents又会阻塞UI
于是我打算用timer来做,逐行执行,构思了很久,应该能写出来
先过滤空行,命令大小写,兼容中文命令转英文,再解析语法结构
部分功能都是call内置函数,支持dim等命令,可以用vbs的Execute来执行
用timer执行的话一些高效率的语法执行起来效果很差
有没有大神来个好点的思路
刚发帖被和谐了,什么鬼,改了点关键词再试试....
2019年12月14日 04点12分 1
level 11
要实现这脚本解释器
delay 应该是最简单的一个命令块了[黑线]
2019年12月14日 10点12分 2
level 14
没办法,单线程运行,只能提供DoEvents来响应消息。 你可以考虑多线程或多进程的方式来执行脚本。
2019年12月15日 00点12分 3
也是,想在某个过程中来完成是不现实的,doEvents要响应消息,最终还是必定打乱流程,多线程我再试试,不理想可能只有timer逐行解析,部分语句和循环一次性执行,如果循环或判断语句中没有delay,那样就可以完全不考虑效率问题了
2019年12月15日 19点12分
1