나는 멀티 터치를 처리하려고하는데 한 번만 터치 만받습니다. 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]", touches.size()); onTouchesBegan에서 인쇄 하시겠습니까? – musikov
로그는 "onTouchesBegan [1]"이며 한 번만 호출하면 두 번째 손가락이 적용되지 않습니다. – Frizlancer