zoukankan      html  css  js  c++  java
  • cocos2dx中的一些坑

    1、CCTableView中的lua绑定
    LUA_TableViewDataSource

    在TestLua里有例子,有个TableView的例子
    function TableViewTestLayer.cellSizeForTable(table,idx) 

      return 60,60
    end

    结合下面的C++代码发现第一个是width,第二是height

    virtual CCSize tableCellSizeForIndex(CCTableView *table, unsigned int idx)
    {
    if (NULL != table )
    {
    int nHandler = table->getScriptHandler(CCTableView::kTableCellSizeForIndex);
    if (0 != nHandler)
    {
    CCArray* resultArray = CCArray::create();
    if (NULL != resultArray)
    {
    CCLuaEngine::defaultEngine()->executeTableViewEvent(CCTableView::kTableCellSizeForIndex, table,&idx,resultArray);
    CCAssert(resultArray->count() == 2, "tableCellSizeForIndex Array count error");
    CCDouble* width = dynamic_cast<CCDouble*>(resultArray->objectAtIndex(0));
    CCDouble* height = dynamic_cast<CCDouble*>(resultArray->objectAtIndex(1));
    if (NULL != width && NULL != height)
    {
    return CCSizeMake((float)width->getValue(), (float)height->getValue());
    }
    }
    }
    }
    
    return CCSizeMake(0,0);
    }

    2、获取点击的sender

    点击时发送的sender没有传回,可以在CCLuaEngine里的executeNodeEvent,executeNodeTouchEvent,executeNodeTouchesEvent

    里加上下面两句。

    event["tag"]=CCLuaValue::intValue(pNode->getTag());

    event["target"]=CCLuaValue::ccobjectValue(pNode,"CCNode”);

  • 相关阅读:
    设计模式——适配器模式
    设计模式——模板方法模式
    03-Web开发(上)
    02-配置文件
    01-QuickStart
    34-多线程(下)
    33-IO(下)
    15-后端编译与优化(待补充)
    14-线程安全与锁优化
    13-JUC(下)
  • 原文地址:https://www.cnblogs.com/xdao/p/some_cocox2dx_hole.html
Copyright © 2011-2022 走看看