local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
function MainScene:ctor()
local layer = display.newLayer()
self:addChild(layer);
layer:setTouchEnabled(true);
layer:setTouchMode(cc.TOUCH_MODE_ALL_AT_ONCE)
layer:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(...)
dump(...)
end)
end
function MainScene:onEnter()
end
function MainScene:onExit()
end
return MainScene
```
两个手指同时触屏,并不断移动,当一个手指离开屏幕,剩下的一个手指在屏幕无论是继续移动还是抬起,都不再产生触摸事件了。除非剩下的这个手指在新的手指按住屏幕不放时,才能产生新的触摸事件。
请问如何解决这样的问题?
没人遇到这个问题吗?
Mark~~~
找到解决办法了:
在lib/cocos2d-x/cocos2dx/layers_scenes_transitions_nodes/CCSCene.cpp:
void CCScene::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)
{
dispatchingTouchEvent(pTouches, pEvent, CCTOUCHENDED);
// remove all touching nodes
// CCLOG("TOUCH ENDED, REMOVE ALL TOUCH TARGETS");
// touches ended之后不要清掉所有触点信息
// m_touchingTargets->removeAllObjects(); //注释掉这一句
}
```
在CCScene::ccTouchesBegan中已经m_touchingTargets->removeAllObjects一次了。在ccTouchesBegan这里remove all不会产生另外的一个问题:
当一个触点一直按住屏幕移动时,又加入新的触点,旧的触点无论怎么移动,抬起,都没有反应。这个没问题就不去管了。。
这个 已确认