💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
这篇文章讨论了《Undertale》中选择对话集的代码,尽管被认为效率低下,但在游戏中运行正常。文章解释了switch-case的实现,指出跳转表能提高性能,并质疑在GML中使用数组是否真的比switch-case更快。
🎯
关键要点
- 文章讨论了《Undertale》中选择对话集的代码,尽管效率低下,但在游戏中运行正常。
- 代码使用了switch-case结构,处理成千上万的不同情况。
- 许多程序员认为这段代码不够优化,但它并未导致游戏中的错误。
- GML是一种动态语言,类似于JavaScript、Lua和Python,运行在虚拟机的字节码上。
- switch-case的标准实现方式是使用跳转表,将每个case放入子程序中。
- 跳转表的概念在汇编语言和虚拟机字节码编程中使用已久。
- switch语句中的case并不是在运行时评估的布尔表达式,而是直接指向要执行的代码。
- 在GML中,数组的功能类似于哈希映射,使用数组是否真的比使用switch-case更快值得质疑。
➡️