cocos2d-iphone 调用lua
2012-07-07 00:56
260 查看
这次会介绍一下如果将 Lua 引入到 cocos2d 的项目中去,以便更方便的进行游戏项目调试。
本次测试采用了最新版本的
cocos2d-iphone v1.1,最新版本代码可以从这里下载:Github。
Lua 版本采用 5.2.0,请到这里下载:Lua.org。
XCode 使用 XCode4。
前面多说一句,如果是第一次使用 cocos2d,那么请在解压 cocos2d 压缩包之后,进入终端窗口,键入“cd ”,然后将 cocos2d 的文件夹拖到终端窗口上。操作正确的话,终端窗口里面会出现该文件夹的路径,然后敲回车,直接进入该文件夹。
键入如下命令,安装 XCode 的模板。
sudo ./install-templates.sh
这样 cocos2d 的模板就安装好了。
将下载好的 Lua 文件包解压到一个文件夹,准备好。
然后打开 XCode,创建新项目:
我们选择 cocos2d 模板,创建名为“TestLua”的项目。
可以试着运行一下,iOS 模拟器会启动,并且显示一行“Hello World”在画面中间。
这时查看输出信息,可以看到最后几行如下的跟踪信息:
2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO
2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320
在 XCode 界面的最左侧选择项目列表的第一行(写着“TestLua”那行),然后在界面中间下方找到“Add Target”,点击它。
在弹出的 Target 对话框中进行如下选择创建静态库的 Target:
给新的 Target 命名为“Lua”,然后再回到左侧项目文件列表上,右键选择“Add Files to “TestLua””:
在弹出的选择框中选择解压好的 Lua 文件夹。记得将其加入到 Lua 目标中去。
准备工作就做好了,可以再次运行测试一下,如果一切正常,那么还会看见刚才的画面。
下面开始写测试代码。
在左侧找到 HelloWorldLayer.m 文件,将其改名为 HelloWorldLayer.mm,标识为 C++ 文件。
点击 HelloWorldLayer.mm,XCode 界面右侧就会出现源代码。找到这行:
#import "HelloWorldLayer.h"
在这行代码下面写入如下代码:
这样,我们就加入了一段最简单的 Lua 代码到程序中。不过这还不算完,我们要调用它试验一下。
还是在 HelloWorldLayer.mm 中,找到 scene 方法,添加针对 runlua 方法的调用:
现在,试着再运行一下。
画面没有什么变化,但是看一下输出:
2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO
2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320
Lua done!
看到最后一行了吗?说明我们的 Lua 代码被正确执行了!这样,我们就成功实现了在 cocos2d 里面对 Lua 程序的调用。
好,现在,该去好好学习 Lua 啦
本次测试采用了最新版本的
cocos2d-iphone v1.1,最新版本代码可以从这里下载:Github。
Lua 版本采用 5.2.0,请到这里下载:Lua.org。
XCode 使用 XCode4。
前面多说一句,如果是第一次使用 cocos2d,那么请在解压 cocos2d 压缩包之后,进入终端窗口,键入“cd ”,然后将 cocos2d 的文件夹拖到终端窗口上。操作正确的话,终端窗口里面会出现该文件夹的路径,然后敲回车,直接进入该文件夹。
键入如下命令,安装 XCode 的模板。
sudo ./install-templates.sh
1 | sudo ./install-templates.sh |
将下载好的 Lua 文件包解压到一个文件夹,准备好。
然后打开 XCode,创建新项目:
我们选择 cocos2d 模板,创建名为“TestLua”的项目。
可以试着运行一下,iOS 模拟器会启动,并且显示一行“Hello World”在画面中间。
这时查看输出信息,可以看到最后几行如下的跟踪信息:
2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO
2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320
1 2 3 4 | 2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES 2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES 2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO 2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320 |
在弹出的 Target 对话框中进行如下选择创建静态库的 Target:
给新的 Target 命名为“Lua”,然后再回到左侧项目文件列表上,右键选择“Add Files to “TestLua””:
在弹出的选择框中选择解压好的 Lua 文件夹。记得将其加入到 Lua 目标中去。
准备工作就做好了,可以再次运行测试一下,如果一切正常,那么还会看见刚才的画面。
下面开始写测试代码。
在左侧找到 HelloWorldLayer.m 文件,将其改名为 HelloWorldLayer.mm,标识为 C++ 文件。
点击 HelloWorldLayer.mm,XCode 界面右侧就会出现源代码。找到这行:
#import "HelloWorldLayer.h"
1 | #import "HelloWorldLayer.h" |
/ // extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }; int runlua(void) { lua_State *L = luaL_newstate(); // load the libs luaL_openlibs(L); printf("\nLua done!\n"); lua_close(L); return 0; }
这样,我们就加入了一段最简单的 Lua 代码到程序中。不过这还不算完,我们要调用它试验一下。
还是在 HelloWorldLayer.mm 中,找到 scene 方法,添加针对 runlua 方法的调用:
+(CCScene *) scene { // 'scene' is an autorelease object. CCScene *scene = [CCScene node]; // 'layer' is an autorelease object. HelloWorldLayer *layer = [HelloWorldLayer node]; // add layer as a child to scene [scene addChild: layer]; // 执行 lua 方法 runlua(); // return the scene return scene; }
现在,试着再运行一下。
画面没有什么变化,但是看一下输出:
2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES
2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO
2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320
Lua done!
1 2 3 4 5 6 | 2012-02-01 21:45:10.452 TestLua[2136:10a03] cocos2d: compiled with VBO support in TextureAtlas : YES 2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Affine Matrix transformation in CCNode : YES 2012-02-01 21:45:10.453 TestLua[2136:10a03] cocos2d: compiled with Profiling Support: NO 2012-02-01 21:45:10.527 TestLua[2136:10a03] cocos2d: surface size: 480x320 Lua done! |
好,现在,该去好好学习 Lua 啦
相关文章推荐
- [寒江孤叶丶的Cocos2d-x之旅_25]Cocos2d-x 浅谈Lua与C++函数间互相调用问题
- Cocos2d-x3.0如何绑定调用lua回调函数
- cocos2d-x lua 调用onEnter和onExit
- cocos2d-x bindings-generator(lua调用c++)
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- 【Cocos2d-x】之C++和Lua的调用_01
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- 【学习笔记】【Cocos2d-x Lua脚本开发】如何使用Lua脚本调用自定义类
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 【木头Cocos2d-x 031】Lua篇(第06章):Lua调用C++的函数
- Cocos2d-x中调用Lua及HelloWorld.lua源码分解
- Cocos2d-x下Lua调用自定义C++类
- 总结关于lua, c , android,在 cocos2d-x 之间的调用方法
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- Quick-Cocos2d-x 使用tolua工具导出C++的类给Lua调用
- cocos2d lua调用OC代码
- [iphone-cocos2d]分享一段Objective-C可调用的游戏中播放音乐(1)
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- cocos2d-x 3.0 在lua中调用自定义类
- cocos2d-x lua调用c++