gpt4 book ai didi

lua - 如何开始使用可嵌入脚本?

转载 作者:行者123 更新时间:2023-12-01 09:39:38 25 4
gpt4 key购买 nike

我正在开发一款 C++ 游戏。不过,有人告诉我,我还应该使用像 Lua 或 Angelscript 这样的可嵌入脚本语言,但老实说,我不知道如何或为什么。与将我的所有数据存储在某种文本文件中相比,这会给我带来什么好处?我该如何开始?我试图阅读一些 Lua 示例,但我不知道它是如何工作的,或者我应该如何使用它。

最佳答案

首先是“为什么”问题:

如果到目前为止你已经取得了合理的进展,那么你就有了 Action 发生的游戏场景,然后是一种带有可见游戏控件的 GUI: map 、指南针、热键、聊天框等等。

如果您通过配置文件使 GUI(位置、大小、设置、默认值等)可配置,那么对于初学者来说没问题。但是如果你让它可以通过代码控制,那么你可以做很多很酷的事情。示例:进入城市时最小化 map 。组队时显示其他玩家的头像。更新 map 。在战斗中显示不同的热键。那种东西。

现在您可以在 C/C++ 代码中对您的 GUI 进行代码控制,但一个问题是,无论何时您想要更改行为,即使只是一点点,您都需要重新编译整个该死的游戏客户端。如果你有 10 亿玩家,你必须给他们一个新的游戏客户端。那是一个关闭。另一个问题是玩家根本无法自定义 GUI。

简单的嵌入式语言可以解决这两个问题。您可以将这种代码放在单独的文件中,这些文件在运行时加载,并且可以随心所欲地调整。如果您想以某种较小的方式更新 GUI,您可以独立于游戏本身提供 GUI 代码的更新。

至于如何:

最简单的做法是为每一帧调用一次(例如)Lua“主”例程,可能会传递一组带有最新可更新信息的参数,然后让该主例程调用其他函数来完成所需的任何操作。要注意的是您的嵌入式代码只能在很短的时间内获得控制权,即两次屏幕刷新之间的时间;因此它会进行一些更新和绘制,然后再次退出并将控制权返回给您的 C/C++ 主程序循环。

从技术上讲,在您的程序中嵌入 Lua 解释器非常容易。 Lua 解释器有 C 源代码,或者有用于 Windows 的预编译库 (DLL)。只需将它们链接到您的程序中,初始化一次,在主框架循环的每次迭代中调用入口点,就完成了。

关于lua - 如何开始使用可嵌入脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com