首页 > 其他分享 >【COCOS2DX-LUA 脚本开发之九】使用cocos2dx-LuaProxy便捷Lua项目快速使用cocos2dx引擎extensions扩展包

【COCOS2DX-LUA 脚本开发之九】使用cocos2dx-LuaProxy便捷Lua项目快速使用cocos2dx引擎extensions扩展包

时间:2022-11-24 14:33:59浏览次数:73  
标签:cocos2dx lua LuaProxy Lua COCOS2DX UIEventDispatcher Himi extensions

本站文章均为​​李华明Himi​​​原创,转载务必在明显处注明:(作者新浪微博:​​@李华明Himi​​​) 


                  width="150" height="210" frameborder="0" scrolling="no" src="http://widget.weibo.com/relationship/bulkfollow.php?language=zh_cn&uids=1916000601&wide=1&color=FFFFFF,FFFFFF,0082CB,666666&showtitle=0&showinfo=1&sense=0&verified=1&count=1&refer=http%3A%2F%2Fwww.himigame.com%2Flua1%2F1322.html&dpc=1" style="border-width: 0px; margin: 0px; padding: 0px; font-family: arial, helvetica, clean, sans-serif;font-size:12px; line-height: 16px; text-align: left; ">



首先很多童鞋可能对于 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 解压后如下图:

​​

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

​​

 

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

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

​​

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

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

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实例后进行添加如下代码:

CCLuaStack *pStack = pEngine->getLuaStack();​​       

​​lua_State* L = pStack->getLuaState();​​

​​luaopen_LuaProxy(L);​​

如下图:

​​

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

local proxy = CCBProxy:create()​​

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

-- Get​​       

​​CCHttpRequest:open(​​​​"https://google.com/search?q=LuaProxy&safe=strict"​​​​, kHttpGet):sendWithHandler(​​

​​function(res, hnd)​​

​​print(res:getResponseData(), res:getResponseCode())​​

​​end)​​

控制台输出:

​​

 

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

 

标签:cocos2dx,lua,LuaProxy,Lua,COCOS2DX,UIEventDispatcher,Himi,extensions
From: https://blog.51cto.com/xiaominghimi/5883907

相关文章

  • 情迁QQ机器人 Lua机器人插件开发教程
    说明目前支持机器人lua插件在2018年11月17日发布了,各位记得先情迁下载QQ机器人哈本文章会慢慢补充,lua机器人插件能力将在情迁QQ机器人1.8.8以及以上版本体现.安装目录新建......
  • redis通过lua脚本------实现原子性操作(PHP代码实现)
    背景一直都知道redis里可以执行lua脚本,但是以前一直搞不懂redis为啥要这么搞,今天看了人家一篇博文,说秒杀场景出现商品超卖,解决方案是利用lua脚本来保证操作的原子性自己......
  • 安装LuaCheck后无法打开Pycharm
    问题:打开Pycham报错“keycom.tang.intellij.lua.luacheck.LuaCheckSettings”  2.解决办法:插件不匹配,删除对应的插件即可    插件路径:/Users/localuser(......
  • Java + Lua = 王炸!!
    我们写东西的时候总会遇到lua中要调用java代码,当然这个用JNI肯定是可以做到的,但是有更加方便的办法—LuaJavaBridge。一、luaj主要特征*可以从Lua调用JavaClassS......
  • lua的编译、运行
      lua是一个脚本语言,它的编译器非常简单。一般而言,lua在游戏里面使用得比较多。它可以通过类似于脚本的形式把函数的功能串行起来,实现很多不可思议的效果。现在关于lua......
  • 【四期陶富强】CCF-B(Pattern Recognition12)Feature evaluation and selection with
    SunX,LiuY,LiJ,etal.Featureevaluationandselectionwithcooperativegametheory[J].Patternrecognition,2012,45(8):2992-3002.  这篇论文针对......
  • logitech lua apex
    --传奇321912641--第一排第一个732427052--第二排第一个612134111--第三排第一个481541808--第一个和第二个之间横坐标间隔4000--传家宝5480549049--使用......
  • IDEA debug时拷贝数据 Evaluate Expression窗口
    今日份鸡汤:别人再好,也是别人。自己再不堪,也是自己,独一无二的自己。只要努力去做最好的自己,一生足矣。为自己的人生负责,为自己的梦想买单。用IDEA调试时候经常需要拷贝变......
  • 【网关开发】3.openresty lua使用lmdb数据库
    背景网关的高可用是比较重要的内容,即使etcd数据库挂掉,也可以根据现有的数据提供负载均衡应用所以采用几级缓存的形式cache-->lmdb-->etcd这里使用的是kong提供的插件......
  • SAP 电商云 CMSUserGroupRestriction 在 Spartacus 里的 evaluation 问题
    问题描述已经设置了CMSUserGroupRestriction,在Accelerator上可以正常工作,但在Spartacus上不工作。注意到的是导航节点根据restriction已经处于deactivated状态,但......