lua交互API函数入门系列-堆栈[1]

PopLuaNumber

lua_settop

lua_getglobal

lua_gettop


在《游戏人工智能编程案例精粹》的6.3.4节“与C/C++接口”,我觉得讲的非常好,由于PDF版本无法复制,所以我键盘敲出来内容,如下:

C++和Lua分别使用不同的语法和数据类型工作,因此相互之间不可能直接“谈话”。你可以认为这种情况与两个遭遇船只失事的海盗分别飘到了两个相距很远的孤岛上一样。不管他们如何大声的呼喊,他们之间也不能直接对话。幸运的是,其中的一个海盗有一只能说会道名叫bernie的鹦鹉。Bernie可以记忆并重述他最近听到的话,他经常在两个小岛之间来回飞翔与寻找食物。海盗们很快意识到Bernie能够作为一个他们之间的通信手段。如果海盗1想到知道海盗2的名字,他可以对Bernie说:“老兄,你再那么?我对谁说话呢?”然后他开始等待bernie飞一个来货。当鹦鹉回来的时候,他会说出海盗2最后说的话:”我是黑胡子啊。啊哈,我在这儿呢。“

 

LUA和C++之间通过一个虚拟堆栈(virtual static)来相互通信,这就像两个海盗使用鹦鹉来传递他们之家呢对话一样。这个虚拟对战随着脚本的需要而增长和缩短。作为一个简洁的例子,让我们假设字符串”Caption Hook“已经赋值给了Lua脚本的Priate Name变量


 Privates_Name = "Captain Hook"



..........我这里突然感觉这文章写的太好了,网上其他的教程都不如老外这个教程写的清楚。当然前提是你反反复复搞那么几遍,比如弄个小例子跑一跑啊,尽管有点迷迷糊糊,但是看了这个教程后,就渐渐明朗起来。我打算再读几遍。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值