Я использую cocos2d-x v3.3rc0
Я пытаюсь обрабатывать мультитач, но я получаю только одно касание.
Это поведение похоже на одно касание, а не на мультитач. onTouchesBegan вызывает только один раз, когда я касаюсь более одного пальца.Не удается получить работу мультитач на cocos2d-x v3
Надеюсь, кто-то может помочь мне решить эту проблему.
Вот мой код, чтобы включить Мультитач
ControlLayer.h
#include "cocos2d.h"
class ControlLayer : public cocos2d::Layer{
public:
static ControlLayer* create();
virtual bool init();
void onTouchesBegan(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event *unused_event);
void onTouchesMoved(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event *unused_event);
void onTouchesEnded(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event *unused_event);
};
ControlLayer.cpp
bool ControlLayer::init(){
if (!Layer::init()){
return false;
}
auto touchListener = EventListenerTouchAllAtOnce::create();
touchListener->onTouchesBegan = CC_CALLBACK_2(ControlLayer::onTouchesBegan, this);
touchListener->onTouchesMoved = CC_CALLBACK_2(ControlLayer::onTouchesMoved, this);
touchListener->onTouchesEnded = CC_CALLBACK_2(ControlLayer::onTouchesEnded, this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchListener, this);
return true;
}
void ControlLayer::onTouchesBegan(const std::vector<Touch*>& touches, Event *unused_event){
CCLOG("onTouchesBegan[%lu]", touches.size());
}
void ControlLayer::onTouchesMoved(const std::vector<Touch*>& touches, Event *unused_event){
CCLOG("onTouchesMoved[%lu]", touches.size());
}
void ControlLayer::onTouchesEnded(const std::vector<Touch*>& touches, Event *unused_event){
}
Что делает CCLOG ("onTouchesBegan [% lu]", touchhes.size()); печатать в onTouchesBegan? – musikov
Журнал «onTouchesBegan [1]», и он называется только один раз, второй палец не действует. – Frizlancer