国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Lua和C++的通信流程分解

2024-07-21 23:03:59
字體:
來源:轉載
供稿:網友

網上關于Lua的教程似乎還沒有泛濫,最近剛好學習在Cocos2d-x使用Lua,當然了,我是寫教程狂,我會分享我的學習心得的~
(旁白:我噗~!每次你寫東西我就要吐槽,你不累么= =)
 
這是第一課,先來讓Lua和C++認識一下,順便讓它們逛街吃飯牽小手什么的…
(旁白:。。。吹,繼續吹)

1. Lua的堆棧和全局表

我們來簡單解釋一下Lua的堆棧和全局表,堆棧大家應該會比較熟悉,它主要是用來讓C++和Lua通信的,是的,它們并不認識對方,只能通過堆棧來溝通,就像寫信一樣。
(旁白:它們不會用微信嗎?!微信~!不知道?)
 
Lua的全局表又是什么呢?可以想象成是一個map哈希表結構,比如Lua有一個變量:

復制代碼 代碼如下:
name = “hello”

那么,全局表就存放了”name”和”hello”的對應關系,Lua可以通過name在全局表中查找到hello。應該是這樣的~
(旁白:應該= =?。?p>  

2. Lua和C++的第一次通信

現在來設計一個場景,C++在一次JavaScript開發者大會上看到Lua在演講,于是C++被Lua深深吸引了。
(旁白:JavaScript大會…那為毛是Lua在演講~?。?br />  
我們來看看這位美麗的Lua小姐長什么樣:

復制代碼 代碼如下:
-- hello.lua 文件
myName = "beauty girl"

OK,一位簡單又美麗Lua小姐。
然后,C++想知道Lua叫什么名字,所以,它們必須要通信了。來看看通信流程:

 

Lua,C++,通信流程

請注意紅色數字,代表通信順序:
1) C++想獲取Lua的myName字符串的值,所以它把myName放到Lua堆棧(棧頂),以便Lua能看到
2) Lua從堆棧(棧頂)中獲取myName,此時棧頂再次變為空
3) Lua拿著這個myName去Lua全局表查找myName對應的字符串
4) 全局表返回一個字符串”beauty girl”
5) Lua把取得的“beauty girl”字符串放到堆棧(棧頂)
6) C++可以從Lua堆棧中取得“beauty girl”,也就是這位美麗的Lua小姐的名字了~
世界如此美妙,這是如此的簡單。
(旁白:好吧,這次不吐槽,確實簡單…)
 
不過,(旁白:我就知道~!我就知道事情沒有那么簡單?。┻@只是最簡單的情況,實際上各種C++和Lua的操作比這要復雜多了,但基本原理是一樣的。
好的,趁著旁白還沒有吐槽,我們要結束第一章了,希望能幫到大家。
(旁白:說得好像我好喜歡搶戲似的,我像這樣的人嗎?= = 等等~!例子呢?Demo呢?)
 
噢,Demo將在下一章介紹。
(旁白:吊胃口。。。絕對是在吊胃口…你以為我會期待嗎,魂淡…心好癢~?。?/p>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 应用必备| 九龙县| 庆云县| 二连浩特市| 麻栗坡县| 枝江市| 青阳县| 扎鲁特旗| 子长县| 林甸县| 万载县| 红原县| 龙胜| 额尔古纳市| 贺兰县| 邵武市| 额济纳旗| 西青区| 云南省| 永定县| 玛曲县| 澜沧| 甘南县| 六安市| 洛浦县| 册亨县| 勃利县| 绥中县| 渑池县| 定州市| 大宁县| 绥宁县| 闽侯县| 西城区| 福海县| 萨嘎县| 墨竹工卡县| 宁海县| 抚远县| 河曲县| 高密市|