【COCOS2DX-LUA 脚本开发之九】cocos2dx-LuaProxy扩展extensions包

简介:

首先很多童鞋可能对于 cocos2dx-LuaProxy 不太熟悉,那么Himi简单的一句话进行叙述:

cocos2dx-LuaProxy 的作用主要是让cocos2dx引擎的扩展包(extensions)binding到Lua,便于做cocos2dx-lua项目开发者们。

这里先附上cocos2dx-LuaProxy下载地址:https://github.com/shawnclovie/cocos2dx-LuaProxy

仔细的童鞋可以明显的看出cocos2dx-LuaProxy最新一次的更新与本篇文章发布时间是不超过两个小时的,说这个,不是说cocos2dx-LuaProxy是Himi做的,而是想说的是:

Himi在使用cocos2dx-LuaProxy遇到了虚函数问题导致cocos2dx-LuaProxy不能在本人i的Xcode中正常编译, 恰巧的是刚刚跟cocos2dx-LuaProxy的作者交流过,其作者修正了一版!

废话不说了,下面详细介绍如何在cocos2dx-lua项目中通过cocos2dx-LuaProxy使用cocos2dx引擎扩展extensions包。

下载 cocos2dx-LuaProxy 解压后如下图:

QQ20130412-7@2x

继续看下面的cocos2dx引擎的extensions扩展包的目录截图,通过对比目录大家可以看的很清楚 cocos2dx-LuaProxy为我们做了哪些工作。

QQ20130412-8@2x

 

OK,下面详细介绍如何使用 cocos2dx-LuaProxy:

第一步:将我们解压后的 cocos2dx-LuaProxy文件下的 tolua 与ui文件夹加入我们的项目中!
加入后,如果你立即使用Xcode进行build编译,会发现报错。(windows下应该不会),错误如下图:

QQ20130412-9@2x

通过错误信息可以清晰的看到是我们刚导入的 cocos2dx-LuaProxy框架中UI包下的UIEventDispatcher类的问题, 解决方式 删除此UIEventDispatcher类,UIEventDispatcher.h 和 UIEventDispatcher.cpp都删除即可。

其原因 cocos2dx-LuaProxy的README 中讲的很详细了,如下:

 


  
  
  1. You may safety remove ui/UIEventDispatcher.cpp(and .h), it's just design for win32. 
 

是的,UIEventDispatcher 只适用于win32,所以我们尽管删除就对啦~然后再build编译就不会有问题了。

第二步:

首先在AppDelegate.cpp 中导入头luaopen_LuaProxy文件 :

#include “luaopen_LuaProxy.h”

另外继续在AppDelegate.cppd的applicationDidFinishLaunching函数中,在获取到CCLuaEngine实例后进行添加如下代码:

 


  
  
  1. CCLuaStack *pStack = pEngine->getLuaStack(); 
  2.     lua_State* L = pStack->getLuaState(); 
  3.     luaopen_LuaProxy(L); 
 

如下图:

QQ20130412-10@2x

    注意:当载入使用ccbi时需要首先创建一个CCBProxy,你需要先创建一个CCBProxy! 

 


  
  
  1.    
  2. local proxy = CCBProxy:create() 
 

下面我们书写lua测试代码,来测试cocos2dx-LuaProxy 的其中一个对HttpClient功能扩展:

 


  
  
  1. -- Get 
  2.         CCHttpRequest:open("https://google.com/search?q=LuaProxy&safe=strict", kHttpGet):sendWithHandler
  3.         function(res, hnd) 
  4.         print(res:getResponseData(), res:getResponseCode()) 
  5.         end
 

控制台输出:

QQ20130412-11@2x

 

好啦,2点半多了,准备准备要睡觉了,安。 :yl:

 









本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/1176689,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
监控 安全
公司用什么软件监控电脑:Lua 脚本在监控软件扩展功能的应用
在企业环境中,电脑监控软件对保障信息安全、提升效率至关重要。Lua 脚本在此类软件中用于扩展功能,如收集系统信息、监控软件使用时长及文件操作,向指定服务器发送数据,支持企业管理和运营。
42 6
|
7月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
265 0
|
3月前
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
43 2
|
4月前
|
存储 JSON Ubuntu
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
如何使用 Lua 脚本进行更复杂的网络请求,比如 POST 请求?
|
5月前
|
存储 NoSQL Redis
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
Tair的发展问题之在Redis集群模式下,Lua脚本操作key面临什么问题,如何解决
|
7月前
|
NoSQL API Redis
使用Redis Lua脚本实现高级限流策略
使用Redis Lua脚本实现高级限流策略
232 0
|
8月前
|
存储 NoSQL Redis
Redis的Lua脚本有什么作用?
Redis Lua脚本用于减少网络开销、实现原子操作及扩展指令集。它能合并操作降低网络延迟,保证原子性,替代不支持回滚的事务。通过脚本,代码复用率提高,且可自定义指令,如实现分布式锁,增强Redis功能和灵活性。
287 1
|
8月前
|
缓存 NoSQL Java
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
【Redis】5、Redis 的分布式锁、Lua 脚本保证 Redis 命令的原子性
342 0
|
7月前
|
JSON 监控 数据格式
使用Lua代码扩展上网行为管理软件的脚本功能
本文介绍了如何使用Lua脚本增强上网行为管理,包括过滤URL、记录用户访问日志、控制带宽和自动提交监控数据到网站。Lua是一种轻量级语言,适合编写扩展脚本。文中提供多个示例代码,如URL过滤器、用户活动日志记录器和带宽控制器,帮助用户根据需求定制网络管理功能。通过这些示例,用户可以快速掌握Lua在上网行为管理中的应用。
196 4
|
7月前
|
消息中间件 NoSQL Java
Spring Boot中使用Redis和Lua脚本实现延时队列
Spring Boot中使用Redis和Lua脚本实现延时队列