`
mmdev
  • 浏览: 12932425 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【木头Cocos2d-x 026】Lua篇(第01章):让Lua和C++牵手

 
阅读更多

【木头Cocos2d-x 026】Lua篇(第01章):让Lua和C++牵手

网上关于Lua的教程似乎还没有泛滥,最近刚好学习在Cocos2d-x使用Lua,当然了,我是写教程狂,我会分享我的学习心得的~

(旁白:我噗~!每次你写东西我就要吐槽,你不累么==

这是第一课,先来让LuaC++认识一下,顺便让它们逛街吃饭牵小手什么的...

(旁白:。。。吹,继续吹)

注:本系列教程部分内容参考《游戏人工智能编程 案例精粹》一书。

笨木头花心贡献,啥?花心?不呢,是用心~

转载请注明,原文地址
http://blog.csdn.net/musicvs/article/details/8440707

正文:

1.Lua的堆栈和全局表

我们来简单解释一下Lua的堆栈和全局表,堆栈大家应该会比较熟悉,它主要是用来让C++Lua通信的,是的,它们并不认识对方,只能通过堆栈来沟通,就像写信一样。

(旁白:它们不会用微信吗?!微信~!不知道?)

Lua的全局表又是什么呢?可以想象成是一个map哈希表结构,比如Lua有一个变量:

name=“hello”

那么,全局表就存放了”name”和”hello”的对应关系,Lua可以通过name在全局表中查找到hello。应该是这样的~

(旁白:应该==!)

2.LuaC++的第一次通信

现在来设计一个场景,C++在一次JavaScript开发者大会上看到Lua在演讲,于是C++Lua深深吸引了。

(旁白:JavaScript大会...那为毛是Lua在演讲~!)

我们来看看这位美丽的Lua小姐长什么样:

-- hello.lua 文件
myName = "beauty girl"


OK,一位简单又美丽Lua小姐。

然后,C++想知道Lua叫什么名字,所以,它们必须要通信了。来看看通信流程:

请注意红色数字,代表通信顺序:

1)C++想获取LuamyName字符串的值,所以它把myName放到Lua堆栈(栈顶),以便Lua能看到

2)Lua从堆栈(栈顶)中获取myName,此时栈顶再次变为空

3)Lua拿着这个myNameLua全局表查找myName对应的字符串

4)全局表返回一个字符串”beautygirl”

5)Lua把取得的“beautygirl”字符串放到堆栈(栈顶)

6)C++可以从Lua堆栈中取得“beautygirl”,也就是这位美丽的Lua小姐的名字了~

世界如此美妙,这是如此的简单。

(旁白:好吧,这次不吐槽,确实简单...

不过,(旁白:我就知道~!我就知道事情没有那么简单!)这只是最简单的情况,实际上各种C++Lua的操作比这要复杂多了,但基本原理是一样的。

好的,趁着旁白还没有吐槽,我们要结束第一章了,希望能帮到大家。

(旁白:说得好像我好喜欢抢戏似的,我像这样的人吗?==等等~!例子呢?Demo?

噢,Demo将在下一章介绍。

(旁白:吊胃口。。。绝对是在吊胃口...你以为我会期待吗,魂淡...心好痒~!)

.

.

分享到:
评论

相关推荐

    cocos2d-x+lua游戏demo源码

    cocos2d-x+lua游戏demo源码 xcode工程

    Cocos2d-x之C++和Lua通信5个入门Demo

    木头Cocos2d-x教程 Lua篇 Demo源代码。 教程地址: 第1章:http://blog.csdn.net/musicvs/article/details/8440707 第2章:http://blog.csdn.net/musicvs/article/details/8440919 第3章:...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    Cocos2d-x实战lua卷

    最新版的cocos2d-x实战 lua卷,分享给大家

    关东升-Cocos2d-x实战:Lua卷

    《Cocos2d-x实战 Lua卷》是介绍Cocos2d-x Lua游戏编程和开发技术的书籍,本书是第1版,带完整书签

    Cocos2d-x之Lua核心编程 配套代码

    Cocos2d-x之Lua核心编程 配套代码,没有对应的pdf的书,下载前请看清楚啊!

    Cocos2d-x之LUA脚本引擎深入分析

    Cocos2d-x之LUA脚本引擎深入分析

    Cocos2d-x游戏编程——C++篇 .iso

    Cocos2d-x游戏编程——C++篇(电子工业出版社,徐飞 著)书本配套的光盘代码,

    《Cocos2d-x实战 Lua卷》源码.7z

    《Cocos2d-x实战 Lua卷》源码.7z

    Cocos2d-x实战_Lua卷 _第2版

    Cocos2d-x实战_Lua卷 _第2版

    龙灵修-讲Lua的cocos2d-x进阶视频.rar

    cocos2d-x进阶教程1_1搭建和配置Lua开发环境.mp4 cocos2d-x进阶教程1_2编写自己的Lua版本的HelloWorld.mp4 cocos2d-x进阶教程1_3Lua语言的注释、变量、语句块.mp4 cocos2d-x进阶教程1_4Lua中函数、条件判断语句.mp4 ...

    cocos2d-x-2.1.5

    cocos2d-x-2.1.5

    Cocos2d-x实战:Lua卷(第2版)书籍代码

    这是书籍 Cocos2d-x实战:Lua卷(第2版)的代码,关东升老师的,这里分享出来。除了章节的小示例代码外,还有一个《迷失航线》的游戏示例代码。这是一个下载地址。

    Cocos2D-X游戏开发技术精解

    资源名称:Cocos2D-X游戏开发技术精解内容简介:Cocos2D-X是一款支持多平台的 2D手机游戏引擎,支持iOS、Android、BlackBerry等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 《Cocos2D-X...

    cocos2d-x-3.2旧版引擎下载

    cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656

    Cocos2d-x高级开发教程

    Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...

    Cocos2d-x之Lua核心编程_配套代码

    Cocos2dx Lua开发的核心技术。本书从Lua语言基础开始,全面介绍了Cocos2dx Lua的基础知识、基本应用和高级编程技术,并最终介绍了游戏的实战开发。全书贯穿理论结合实践的编写方式,各个章节都提供了配套实例。

    大富翁手机游戏开发实战基于Cocos2d-x3.2引擎

    资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

Global site tag (gtag.js) - Google Analytics