в демонстрации CppTest Multitouch, когда я касаюсь экрана тремя пальцами, рисуются только 2 перекрестные линии вместо 3.
Это ограничение в 2 касания из-за моего мобильного оборудования? или же
Есть ли способ обнаружить более 2 нажатий одновременно?
Я использую cocos2d-x v3.3 final на Archos Titanium 40 (OS 4.2.2).
Я создал тестовый проект на основе EventListenerTouchAllAtOnce, и это то же самое. Только 2 пальца обнаруживаются только одновременно.
void TLayer::onEnter()
{
auto L = EventListenerTouchAllAtOnce::create();
L->onTouchesBegan = CC_CALLBACK_2(TLayer::OnTouchesBegan, this);
L->onTouchesMoved = CC_CALLBACK_2(TLayer::OnTouchesMoved, this);
L->onTouchesEnded = CC_CALLBACK_2(TLayer::OnTouchesEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(L, this);
}
void TLayer::OnTouchesBegan (const vector<Touch *> &touches, Event *event)
{
static int TapCount=0;
TapCount+;
CCLOG("onTouchesBegan: TAP: %d", TapCount);
}
void TLayer::OnTouchesMoved (const vector<Touch *> &touches, Event *event)
{
}
void TLayer::OnTouchesEnded(const vector<Touch *> &touches, Event *event)
{
CCLOG("OnTouchesEnded...");
}
когда я запускаю этот образец, затем нажимаю 3 пальца, журналы отображаются только для 2 пальцев, а не 3:
onTouchesBegan: TAP: 1
onTouchesBegan: TAP: 2
OnTouchesEnded...
OnTouchesEnded...
отсутствует TAP: 3 . Как я уже сказал, я получаю то же поведение при запуске демонстрации CppTest / Multitouch из финала v3.3.
Теперь я думаю, что я ограничен моим оборудованием. Мое ограничение в 2 касания не связано с ограничением cocos2dx.
У меня есть проект, который должен обрабатывать 3 касания одновременно, поэтому мне нужно сначала определить аппаратную емкость, прежде чем принять решение адаптировать приложение к 2 касаниям или нет.
Так что если у вас есть мультитач-проект, как у меня, учтите, что аппаратное обеспечение может ограничить вас, прежде чем углубляться в разработку. Спасибо