我刚刚开始使用cocos2d-iphone玩游戏,我试图在我的hud中添加一个暂停按钮。 我的hud会有:
我一直在阅读Ray Wenderlich的tutorials,他提到应该使用按钮CCMenuItemImage
。我第一次做到了:
CCMenuItemImage *pauseButton = [CCMenuItemImage itemFromNormalImage:@"hud_pause_bt.png" selectedImage:@"hud_pause_bt.png" target:self selector:@selector(pauseAction:)];
pauseButton.position = ccp(winSize.width - pauseButton.rect.size.width/1.8, winSize.height - pauseButton.rect.size.height/1.8);
[self addChild:pauseButton];
但我从未达到pauseAction方法。之后,我尝试使用以下代码将CCMenuItemImage
添加到CCMenu
:
CGSize winSize = [CCDirector sharedDirector].winSize;
CCMenuItemImage *pauseButton = [CCMenuItemImage itemFromNormalImage:@"hud_pause_bt.png" selectedImage:@"hud_pause_bt.png" target:self selector:@selector(pauseAction:)];
pauseButton.position = ccp(winSize.width - pauseButton.rect.size.width/1.8, winSize.height - pauseButton.rect.size.height/1.8);
CCMenu *pauseMenu = [CCMenu menuWithItems:pauseButton, nil];
pauseMenu.position = CGPointZero;
[self addChild:pauseMenu];
在这种情况下,触摸有效,但创建CCMenu
只是为了使我的CCMenuItemImage
可点击是错误的。
您怎么看?
答案 0 :(得分:3)
你做的方式是正确的。这就是CCMenu和CCMenuItems的设计方式。
如果您不喜欢该方法,请考虑使用CCStandardTouchDelegate
与CGRectContainsPoint
结合使用。