我正在从事Cocos2d-x cpp项目。我已成功添加触摸事件以在图层中移动背景。现在,我想将CCMenuItemLabel添加到图层,但是我发现CCMenuItemLabel在触摸它时不起作用。我该如何解决?

我在图层中添加了以下功能:

virtual void ccTouchesBegan (CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesMoved (CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesEnded (CCSet *pTouches, CCEvent *pEvent);


在MyLayer :: init()函数中:

this->setTouchEnabled(true);

CCLabelTTF* test = CCLabelTTF::create("tesetdd","Arial",40);
CCMenuItemLabel* menuLabel = CCMenuItemLabel::create(test,this,menu_selector(GameWall::menuCall));
menuLabel->setPosition(ccp(winSize.width/2,winSize.height/2));
this->addChild(menuLabel,1);


更新:我已经将CCMenuItemLabel放入CCMenu。但这仍然行不通。

CCLabelTTF* test = CCLabelTTF::create("tesetdd","Arial",40);
CCMenuItemLabel* menuLabel = CCMenuItemLabel::create(test,this,menu_selector(GameWall::menuCall));
menuLabel->setPosition(ccp(winSize.width/2,winSize.height/2));
CCMenu* menu = CCMenu::create(menuLabel,NULL);
menu->setPosition(CCPointZero);
this->addChild(menu,1);

最佳答案

不要将CCMenuItems直接添加到图层。将它们添加到CCMenu并将该CCMenu添加到图层。

关于c++ - isTouchEnabled为true时CCMenuItemLabel不起作用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19949261/

10-13 09:09