使用CCMenuItemImage在hud图层中创建单个按钮

时间:2011-09-05 17:00:37

标签: ios cocos2d-iphone

我刚刚开始使用cocos2d-iphone玩游戏,我试图在我的hud中添加一个暂停按钮。 我的hud会有:

  • 剩余时间
  • HP bar
  • 暂停按钮

我一直在阅读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可点击是错误的。

您怎么看?

1 个答案:

答案 0 :(得分:3)

你做的方式是正确的。这就是CCMenu和CCMenuItems的设计方式。

如果您不喜欢该方法,请考虑使用CCStandardTouchDelegateCGRectContainsPoint结合使用。