纯 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 写的脚本,都是由策划编写,语法比较简单,可以很快学会
编译原理的东西学得不好,很多功能是硬堆出来的,但功能是完善的,同时也在补编译原理方面的知识,希望后期能更加优化
如果有小伙伴想使用的话,希望发现问题可以及时联系我,谢谢
时间: 2024-10-16 03:40:27