您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx的触摸方法响应跳转场景的操作导致触摸失效的问题

2017-07-28 11:14 477 查看
最近的项目是iOS嵌入cocos2dx框架使iOS的应用不在死板。在研发过程中发现这么一个问题,在场景跳转的过程中,进入下一个场景后,前一个场景是被释放掉的,如果再回去,场景会被重新加载,在这一过程中,产生了一个关于触摸方法的问题,即在场景跳转了十五次之后,触摸方法失效了,产生的log是:之所以产生这个问题,是因为我将场景跳转的方法写在了onTouchBegan()这个方法中了,而cocos2dx的框架中有这么几个东西






仔细观察发现,当removeUsedIndexBit()方法不被调用,那么每一次跳转场景,g_indexBitsUsed的值都会增加,当执行到一定次数后,就会导致触摸失效,而removeUsedIndexBit()这个方法在什么地方调用呢?

void
GLView::handleTouchesOfEndOrCancel(EventTouch::EventCode
eventCode, int num,
intptr_t ids[],
float xs[],
float ys[])这个方法是唯一一个调用removeUsedIndexBit()方法的函数,从方法名我们不难看出这个方法与TouchEnded和TouchCancelled方法有关。即只有将场景跳转的方法写在TouchEnded方法中,才是解决的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐