在Cocos2d-x工程中嵌套使用Lua
2015-07-23 16:49
477 查看
一、配置环境
首先到Lua官网(http://www.lua.org)下载Lua的源代码,解压后得到有如下内容的文件夹:
在终端中打开src文件夹,并输入以下命令编译出mac os x 平台下的lau/laux/liblua.a:
首先我们需要将src目录复制到Xcode工程目录下,然后将liblua.a添加到工程的引用库中,如下图所示:
并在工程属性的Build Settings中找到Header Search Paths中添加该lua文件夹的路径,以保证可以再文件中include这些文件:
二、在CPP文件中使用
我就直接贴代码了,注意中间的引用文件部分:
一个最简单的lua堆栈实例:
首先到Lua官网(http://www.lua.org)下载Lua的源代码,解压后得到有如下内容的文件夹:
在终端中打开src文件夹,并输入以下命令编译出mac os x 平台下的lau/laux/liblua.a:
make macosx
首先我们需要将src目录复制到Xcode工程目录下,然后将liblua.a添加到工程的引用库中,如下图所示:
并在工程属性的Build Settings中找到Header Search Paths中添加该lua文件夹的路径,以保证可以再文件中include这些文件:
二、在CPP文件中使用
我就直接贴代码了,注意中间的引用文件部分:
#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" extern "C" { #include <lua.h> #include <lualib.h> #include <lauxlib.h> } class HelloWorld : public cocos2d::Layer { public: // there's no 'id' in cpp, so we recommend returning the class instance pointer static cocos2d::Scene* createScene(); // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone virtual bool init(); // a selector callback void menuCloseCallback(cocos2d::Ref* pSender); // implement the "static create()" method manually CREATE_FUNC(HelloWorld); }; #endif // __HELLOWORLD_SCENE_H__
一个最简单的lua堆栈实例:
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } //创建一个state lua_State* L = luaL_newstate(); //开始入栈 lua_pushstring(L, "I'm so cool"); lua_pushnumber(L, 2); //取值操作 if (lua_isstring(L, 1)) { log("%s", lua_tostring(L, 1)); } if (lua_isnumber(L, 2)) { log("%f", lua_tonumber(L, 2)); } //关闭 lua_close(L); return true; }
相关文章推荐
- cocos2dx3.3+cocostudio1.6屏幕适配笔记
- Cocos2d-js (3.0+)场景转换
- cocos2dx中的游戏储存-UserDefault
- Cocos
- cocos2dx 渲染任意形状贴图
- Cocos2dx-支付宝SDK接入
- Cocos2dx-如何利用NDK分析崩溃日志
- Cocos2dx-本地消息推送
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面
- Cocos2dx-角色创建与动画实现
- cocos2dX 音乐和声音效果
- Cocos2dx-自定义怪物伤害值
- Cocos2dx-背景无限循环播放
- Cocos2dx-Android混编实现头像切换(JNI使用)
- Cocos2dx-Android屏幕适配方案
- Cocos2dx-Mac下的环境配置
- Cocos2dx-C++和Lua数据通讯
- quick-cocos2dx lua中读取 加密 csv表
- Cocos-2d 坐标系及其坐标转换
- Cocos2dx-Lua与C++混合使用