gpt4 book ai didi

c++ - 游戏NPC多 Action lua脚本设计

转载 作者:太空狗 更新时间:2023-10-29 21:07:33 24 4
gpt4 key购买 nike

我需要将可编写脚本的 NPC 放入我当前的游戏项目中。项目本身是用C++语言开发的。我将使用 Luabind 来绑定(bind) lua 和 c++。

我需要在某些 NPC 单击或计时器被激活时调用 NPC 功能。目前我在 2 个 NPC 脚本设计之间徘徊。

  1. 使用一种npcname_action来区分每个NPC。
    给每个不同的NPC起名字有点麻烦。
    我还在考虑如何在我的项目中实现它。
    示例:

    HotelBellboy12_Click() { .. }  
    HotelBellboy12_TimerAction() { .. }
  2. 使用函数名。
    每个npc都有自己的lua文件。
    我正在考虑将脚本加载到内存中,并在需要时使用 luaL_loadbuffer
    加载到 luaState示例:

    OnClick() { .. }
    OnTimerAction() { .. }

哪个更好,为什么?

最佳答案

您可以使用其他设计。

利用表键和值可以是任何类型这一事实。

假设 npc 是一个包含所有 NPC 的表。它的键是 NPC 的名字,它的值是另一个表。这个其他表键是 Action ,它的值是这个 Action 的函数。所以,如果你想让鲍勃在点击时跳起来,而爱丽丝在定时器后哭泣,只需这样做:

npc.bob.click = function () jump() end
npc.alice.timer = function () cry() end

关于c++ - 游戏NPC多 Action lua脚本设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803641/

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