cocos2dx驱动lua

cocos2dx驱动lua,第1张

概述附带几篇交互方式 http://www.voidcn.com/article/p-snrtiles-bre.html http://www.voidcn.com/article/p-hsnziskm-bre.html http://www.voidcn.com/article/p-xywazllr-bre.html 这里针对cocos2dx的实现 1...Scheduler::update 里面直

附带几篇交互方式

http://www.jb51.cc/article/p-snrtiles-bre.html

http://www.jb51.cc/article/p-hsnziskm-bre.html

http://www.jb51.cc/article/p-xywazllr-bre.html

这里针对cocos2dx的实现

1...Scheduler::update 里面直接遍历lua层注册的事件 ,然后派发

#if CC_ENABLE_SCRIPT_BINDING    //    // Script callbacks    //    // Iterate over all the script callbacks    if (!_scriptHandlerEntrIEs.empty())    {        for (auto i = _scriptHandlerEntrIEs.size() - 1; i >= 0; i--)        {            SchedulerScriptHandlerEntry* eachEntry = _scriptHandlerEntrIEs.at(i);            if (eachEntry->isMarkedForDeletion())            {                _scriptHandlerEntrIEs.erase(i);            }            else if (!eachEntry->isPaused())            {                eachEntry->getTimer()->update(dt);            }        }    }#endif

2.Node 里面的事件

成员变量#if CC_ENABLE_SCRIPT_BINDING    int _scriptHandler;               ///< script handler for onEnter() & onExit(),used in JavaScript binding and Lua binding.    int _updateScriptHandler;         ///< script handler for update() callback per frame,which is invoked from lua & JavaScript.    ccScriptType _scriptType;         ///< type of script binding,lua or JavaScript#endif// overrIDe mevoID Node::update(float fDelta){#if CC_ENABLE_SCRIPT_BINDING    if (0 != _updateScriptHandler)    {//派发事件消息到lua        //only lua use        SchedulerScriptData data(_updateScriptHandler,fDelta);        ScriptEvent event(kScheduleEvent,&data);        ScriptEngineManager::getInstance()->getScriptEngine()->sendEvent(&event);    }#endif        if (_componentContainer && !_componentContainer->isEmpty())    {        _componentContainer->visit(fDelta);    }}

其他还有很多派发手段,大体思路就是通过ScriptEngine 来派发事件,因为大部分C++类 都通过tolua导出到lua的,导出类自动把lua的handle通过接口ScriptHandlerMgr::getInstance()->addobjectHandler绑定到cpp对象,然后就能相互调用

总结

以上是内存溢出为你收集整理的cocos2dx驱动lua全部内容,希望文章能够帮你解决cocos2dx驱动lua所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1082832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存