cocos2d菜单ccsprite按钮有时无法触及

时间:2011-12-15 18:27:12

标签: objective-c cocos2d-iphone

我无法理解为什么它在大部分时间都运作良好,但有时候无法触及。 有时我认为加载iad / admob时可能会显示错误。

就像这样:

mnResume=[CCMenuItemImage itemFromNormalImage:@"bt_ps_continue.png" selectedImage:@"bt_ps_continue.png" target:self selector:@selector(menuResume)];
mnStore = [CCMenuItemImage itemFromNormalImage:@"bt_ps_havearest.png" selectedImage:@"bt_ps_havearest.png" target:self selector:@selector(menuStore)];
mnExit=[CCMenuItemImage itemFromNormalImage:@"bt_ps_endgame.png" selectedImage:@"bt_ps_endgame.png" target:self selector:@selector(menuExit)];
//mnResume.anchorPoint=ccp(1,0);
//mnExit.anchorPoint=ccp(0,0);
mnResume.position=ccp(size.width*.5,180);
mnStore.position=ccp(size.width*.5,120);
mnExit.position=ccp(size.width*.5,60);
menu = [CCMenu menuWithItems:mnResume,mnStore,mnExit, nil];
//menu = [CCMenu menuWithItems:nil];
menu.position=ccp(0,0);
[self addChild:menu];

3 个答案:

答案 0 :(得分:0)

它间歇性地加载的事实表明,或许其他东西(甚至是不可见的东西)有时会拦截触摸事件。检查广告单元的框架(或其他某些屏幕控制)是否与CCMenuItem不重叠。

答案 1 :(得分:0)

根据用户界面指南,苹果推荐的用户交互式对象的最小大小为44x44。如果您的对象尺寸较小 - 您的用户缺乏触摸精度。如果是这种情况,你应该增加对象的大小。

答案 2 :(得分:0)

根据我对CCMenu的理解,您不应该自己更改CCMenuItem位置,否则对触摸做出反应的区域和菜单项的图形可能不会重叠,从而给您一种不起作用的印象(正确)。

如果您需要单独定位每个菜单项,请将每个菜单项包装到CCMenu节点中,并仅更改CCMenu节点的位置。