在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
代码用的是<cocos2d-x 3.0 在lua中调用自定义类>中的代码. 在上篇的基础上进行扩充. 写lua函数 local function process_packet(user_data) if user_data then user_data = tolua.cast(user_data, "user_data"); print (user_data:uid()); print (user_data:uname()); end end local ghall = hall:get_singleton_ptr(); ScriptHandlerMgr:getInstance():registerScriptHandler(tolua.cast(ghall, "cc.Ref"), process_packet, cc.Handler.CALLFUNC); 在C++添加对此函数的调用 void hall::process_packet() { auto engine = cocos2d::LuaEngine::getInstance(); user_data ud("kukudi", 10001); cocos2d::BasicScriptData scriptdata(this, &ud); cocos2d::ScriptEvent eve(cocos2d::ScriptEventType::kCallFuncEvent, &scriptdata); engine->sendEvent(&eve); } 执行结果, 输出1001 kukudi 我遇到一些问题在此记录一下 5. 在lua中调用tolua.cast(obj, "hall"); 转换成自定义的类型时会出现Cast name user_data doesn't include modular name which it belongs to,please add the modular name这样的信息, 不用理它; 如果你跟踪源代码会发现像Ref这样的类是这样对应的Ref:cc.Ref, 我自己定义的类没有这些模块, 所以不用理它, 它也就是一个提示信息, 而已 |
请发表评论