cocos2d-x 3beta 2 c ++, предотвращает попадание штрихов из самого верхнего слоя в слои под ним

Эй, у меня есть простой слой, а затем у меня есть второй слой, который всплывающее окно
когда я создаю всплывающее окно, которое является слоем, когда я касаюсь его, касания просачиваются из самого верхнего слоя в слои под ним.
как я могу предотвратить это, поэтому, когда всплывающее окно находится сверху, все слои под
неприкасаемый
это код касания во всплывающем окне

void PopupLayerObj::onEnter()
{
Layer::onEnter();auto listener = EventListenerTouchAllAtOnce::create();

listener->onTouchesBegan = CC_CALLBACK_2(PopupLayerObj::onTouchesBegan, this);
listener->onTouchesMoved = CC_CALLBACK_2(PopupLayerObj::onTouchesMoved, this);
listener->onTouchesEnded = CC_CALLBACK_2(PopupLayerObj::onTouchesEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
}

0

Решение

Я думаю, что вы используете версию Cocos2DX 3.0. Я использую cocos2DX 2.2.1 согласно тому, что я пытаюсь дать решение.

  • Переопределить метод «registerWithTouchDispatcher» CCLayer.
  • Там укажите приоритет для просмотра.
    CCDirector :: sharedDirector () -> getTouchDispatcher () -> addTargetedDelegate (this, kHIGHEST_TOUCH_PRIORITY, true);
  • kHIGHEST_TOUCH_PRIORITY указывает приоритет. Наименьшее значение имеет наивысший приоритет.
  • Когда вы закончите с всплывающим окном, напишите это.
    CCDirector :: sharedDirector () -> getTouchDispatcher () -> removeDelegate (это);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector