以下は私が思いついたものです。それを行う簡単な方法があるかどうか疑問に思います。
メニューレイヤーのみがアップしている間だけタッチ可能にしたいとします。
タッチを飲み込む目に見えないレイヤーを入れます。
bool tNoTouchLayer::init()
{
if(!CCLayer::init()) {
return false;
}
setIsTouchEnabled(true);
return true;
}
void tNoTouchLayer::registerWithTouchDispatcher()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}
bool tNoTouchLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{
return true;
}
これで、メニュー レイヤーを追加する前に noTouchLayer を追加できます。すべてのタッチは noTouchLayer によって盗まれます。