cocos2dx 2.0.4 - lua 添加自定义类
来源:互联网 发布:jquery js时间格式化 编辑:程序博客网 时间:2024/05/19 19:56
主要来源于 Himi 街 http://www.himigame.com/lua-2/985.html, 做了些许修改.
环境: vs2010 + cocos2d-x 2.0.4 win7
一个继承于 CCSprite 的类 HSprite:
HSprite.h
#ifndef HSprite_h#define HSprite_h#include "cocos2d.h"USING_NS_CC;class HSprite : public CCSprite{public: static HSprite* createHSprite(const char* name); void hspriteInit();};#endif
HSprite.cpp
#include "HSprite.h"HSprite* HSprite::createHSprite(const char* name){ HSprite* sp = new HSprite(); if(sp && sp->initWithFile(name)){ sp->hspriteInit(); sp->autorelease(); return sp; } CC_SAFE_DELETE(sp); return NULL;}void HSprite::hspriteInit(){ CCMessageBox("create HSprite success", "ss_Lua");}
LuaCocos2d.h 中添加
#include "HSprite.h"
LuaCocos2d.cpp 中
static void tolua_reg_types (lua_State* tolua_S){ ...... tolua_usertype(tolua_S,"HSprite");}
不要在 tolua_Cocos2d_open 的开头添加, 最好是在末尾添加
TOLUA_API int tolua_Cocos2d_open (lua_State* tolua_S){ ...... tolua_cclass(tolua_S, "HSprite", "HSprite", "CCSprite", NULL); tolua_beginmodule(tolua_S,"HSprite"); tolua_function(tolua_S,"createHSprite",tolua_ss_HSprite_createHSrpite00); tolua_endmodule(tolua_S);}
然后在 tolua_Cocos2d_open 的前面定义
/* method: create of class CCSprite */#ifndef TOLUA_DISABLE_tolua_ss_HSprite_createHSrpite00static int tolua_ss_HSprite_createHSrpite00(lua_State* tolua_S){ tolua_Error tolua_err; if ( !tolua_isusertable(tolua_S,1,"HSprite",0,&tolua_err) || !tolua_isstring(tolua_S,2,0,&tolua_err) || !tolua_isnoobj(tolua_S,3,&tolua_err) ) goto tolua_lerror; else { const char* pszfilename = ((const char*) tolua_tostring(tolua_S,2,0)); { HSprite* tolua_ret = (HSprite*) HSprite::create(pszfilename); int nid = (tolua_ret) ? (int)tolua_ret->m_uID : -1; int* pluaid = (tolua_ret) ? &tolua_ret->m_nLuaID : NULL; toluafix_pushusertype_ccobject(tolua_S, nid, pluaid, (void*)tolua_ret,"HSprite"); } } return 1;tolua_lerror: return 0;}#endif //#ifndef TOLUA_DISABLE
详细的解释看 Himi 的吧...
- cocos2dx 2.0.4 - lua 添加自定义类
- cocos2dx lua 添加动画
- cocos2dx lua自定义lua-binding
- cocos2dx 自定义绑定lua
- lua脚本调用cocos2dx项目中自定义的C++类
- cocos2dx lua中使用自定义类以及tolua++的使用
- cocos2dx创建自定义类让Lua脚本使用
- cocos2dx lua中使用自定义类以及tolua++的使用
- cocos2dx-3.3 导出自定义类到 lua 过程详解
- cocos2dx-lua绑定自定义c++类(一)
- cocos2dx-lua绑定自定义c++类(二)
- quickCocos2dx 中添加自定义类,导出lua
- COCOS2DX-LUA 脚本开发 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
- cocos2dx lua学习笔记 <一> quick 3.5把自定义C++类绑定到lua
- cocos2dx Lua项目中添加Sqlite
- cocos2dx C++工程添加lua支持
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- 【COCOS2DX-LUA 脚本开发之五】Lua 使用OOP(面对对象思想编程),免Binding创建自定义lua类
- ZendFramework学习第三章(核心组件—校验器之单个校验器使用)附加北漂乱慨!
- ZendFramework学习第三章(核心组件—校验器之效验链的使用)
- ZendFramework学习第三章(核心组件—校验器之预定义校验器)
- ZendFramework学习第三章(核心组件—校验器之自定义校验器)
- java连接MS SQLServer
- cocos2dx 2.0.4 - lua 添加自定义类
- 在QTP中使用RegisterUserFunc
- Java中-classpath和路径的使用
- 人的眼内网是无数的茸毛在阳光色彩下的纠结的色块的纠集的纹路==才有宏观形状学和微观纹路学==最后图片式输入大脑.
- dense_hash_map使用过程中一些错误信息
- 分区索引一实例
- C++ 第十二周任务-求解分段函数
- 用matlab实现一个简单的离群点挖掘(与时序有关)
- dpkg:处理google-chrome-stable(--install)时候出错