标签:
纯 C# 编写,解释执行,语法类似 JS,动态类型,支持闭包,支持热更新,相比 LUA 更精简,不过效率低一些,暂时没有发现 BUG,实际游戏运行稳定,没有内存泄漏
Github:https://github.com/easily/EasyScript
测试代码:
func calc() { print(2 + 3) print(2 - 3) print(2 * 3) print(2 / 3) } func ctrl() { n = 1 if (n > 0) { print(""n > 0"") } else { print(""n < 0"") } arr = [1,2,3] for (i = 0, arr.count) { print(arr[i]) } foreach (i in arr) { print(i) } } func closure() { n = 100 f = func() { n = n + 1 return n } for (i = 0, 10) { print(f()) } } func main() { print(""hello world!"") calc() ctrl() closure() } main()
输出:
hello world!
5
-1
6
0.6666667
n > 0
1
2
3
1
2
3
101
102
103
104
105
106
107
108
109
110
纯逻辑运行效率是 C# 的 1/50,数学运算是 1 / 150,
所以最好用在对效率要求不高的地方,还在持续的优化性能
目前已经在实际生产环境使用,我们游戏的技能系统都是用 ES 写的脚本,都是由策划编写,语法比较简单,可以很快学会
编译原理的东西学得不好,很多功能是硬堆出来的,但功能是完善的,同时也在补编译原理方面的知识,希望后期能更加优化
如果有小伙伴想使用的话,希望发现问题可以及时联系我,谢谢
标签:
原文地址:http://www.cnblogs.com/yili16438/p/5626438.html