如何使用lua完成复杂AI

本文探讨了如何使用lua_pcall和lua_cfuntion在C++项目中实现复杂AI逻辑。通过创建状态机并在Lua脚本中定义行为,实现了C++对象状态的灵活控制。文章介绍了在实际项目中遇到的问题,如NPC行为单一,以及通过在lua中存储和操作数据来增加多样性。最后提到了luabridge和luabind作为更强大的Lua与C++交互工具。
摘要由CSDN通过智能技术生成

引言

本文分享了作者最近在实际项目中遇到一些问题,以及学到的一些新的设计方法,其内容主要关于Lua & C++

什么是lua_cfuntion?

lua_cfucnction,是指满足一定格式的C函数,其形式如下:

int  XXX (lua_State * L);

返回值为int,参数为lua_State,这样的函数,经过lua_register注册之后,就可以在lua脚本中使用的C函数。lua与C++通过一个共用的堆栈来传递参数数据。

什么是lua_pcall() and lua_call()?

就是C++调用Lua函数的接口


如何使用lua_pcall和lua_cfuntion?

本文下面讨论的实现方法,仅简单利用lua_cfucnction和lua_pcall技术来实现。所以下面介绍的方法并不是最优化的,但可以完成相对复杂的功能。

主要结构如

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值