cocos2d-x lua-binding:将lua-binding结果引入到项目中使用

简介: cocos2d-x lua-binding:将lua-binding结果引入到项目中使用

lua绑定之后,我们需要修改项目,将绑定后的文件正确的引入到c++工程里面,才能在lua层进行正常的调用。

1.lua-binding

具体的lua绑定操作在cocos2d-x/tools/tolua/genbindings.py,正确binding后,lua对应的c++绑定代码位置在cocos2d-x/cocos/scripting/lua-bindings/auto

2.引入binding代码

libluacocos2d项目解决方案里面添加现有项,将hpp、cpp文件引用到项目:

网络异常,图片无法展示
|

可能遇到的问题:
  • 在hpp里面,找不到头文件,在项目属性里面添加附加包含目录即可

网络异常,图片无法展示
|

  • 参数无法转换:
    网络异常,图片无法展示
    |
    这种情况一般都是lua-bindingcocos2d-x/tools/bindings-generator/targets/lua/conversions.yaml的配置中,关于类型转换没有覆盖到这个接口造成的。具体解决方案参考这里

3.项目解决方案修改

在项目解决方案的AppDelegate.cpp里面,有注册lua模块的入口

bool AppDelegate::applicationDidFinishLaunching(){
  // ...
  lua_module_register();
  // ...
}
复制代码

跳转到lua_module_register.cpp里面,进行如下修改:

// 1.引入lua-binding生成的hpp头文件
#include "scripting/lua-bindings/auto/lua_cocos2dx_xxx_auto.hpp"
int lua_module_register(lua_State* L){
  // 2.调用注册模块接口
  register_all_cocos2dx_xxx(L);
}
复制代码

重新编译项目,在lua中就能正确使用接口了



目录
相关文章
|
4月前
|
Linux 数据安全/隐私保护 iOS开发
【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本
本文将介绍如何使用ipagurd工具对Cocos2d-x中的Lua脚本进行打包与混淆,以及在iOS应用开发中的实际应用。我们将以Cocos2d-x-2.2.1 samples中的HelloLua为例,详细展示整个处理流程,并提供相应的代码案例演示。
|
Windows
在VsCode上调试Cocos2d-x lua项目
在VsCode上调试Cocos2d-x lua项目
942 0
|
存储 监控 NoSQL
【已解决】Java 项目中利用 Redis 配合 Lua 脚本对短信推送消息做推送限制
【已解决】Java 项目中利用 Redis 配合 Lua 脚本对短信推送消息做推送限制
268 0
|
Python
cocos2d-x lua-binding:环境配置
cocos2d-x lua-binding:环境配置
59 0
|
C++ Python
cocos2d-x lua-binding: 源码分析
cocos2d-x lua-binding: 源码分析
100 0
cocos2d-x lua-binding:cheetah模板引擎
cocos2d-x lua-binding:cheetah模板引擎
62 0
|
IDE API 开发工具
cocos2d-x绑lua的开发环境
2013年是手游开发井喷的一年,也是手游市场竞争最为激烈的一年,ios市场除了刷榜、刷榜,还是刷榜,而android有点像黑市的感觉,水太深(很多渠道商已经从上游控制了流量的入口)。而cocos2d-x作为国内手游2d游戏中最流行的引擎,也渐渐由c++开发转为lua,究其原因。
1125 0
|
3月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
196 0