cocos2dx 3.1.1 多点触控无效

bool MyLayer::init()
{
if ( !Layer::init() )
{
return false;
}

//设置为多点响应
setTouchMode(Touch::DispatchMode::ALL_AT_ONCE);

addTouchEvent();

return true;

}

void MyLayer::addTouchEvent()
{
//多点触摸事件
auto multiTouchListener = EventListenerTouchAllAtOnce::create();

multiTouchListener->setEnabled(true);


multiTouchListener->onTouchesBegan = =](const std::vector<Touch*>& touches, Event *event) {
    CCLOG("onTouchesBegan");
};

multiTouchListener->onTouchesMoved = =](const std::vector<Touch*>& touches, Event *event) {
    CCLOG("touch count is %ld", touches.size());
};

multiTouchListener->onTouchesEnded = =](const std::vector<Touch*>& touches, Event *event) {
};

multiTouchListener->onTouchesCancelled = =](const std::vector<Touch*>& touches, Event *event) {
};

 _eventDispatcher->addEventListenerWithSceneGraphPriority(multiTouchListener, this);

}

上面的代码,onTouchesMoved事件中输出的touches.size()总是1,各种修改调试都是1,怀疑是不是3.1.1引擎有bug?

请去EventDispatcher 那里有个dispatchTouchEvent方法中跟踪CClog 一下mutableTouches.size(), 在OneByOne前log下,之后再log下

楼上的方法不错,可以看看是否被遮挡住了

是不是ios没修改应用配置文件,需要打开多点触控

嗯,在iOS工程中打开setMultipleTouchEnabled就好了

楼主问题解决了嘛?我也遇到同样的问题

在AppController.mm中设置
; 以打开多点触控支持

mark…mark…