如何在Cocos2d中播放按钮声音

时间:2013-09-27 16:22:34

标签: audio cocos2d-iphone uibutton

如果我创建一个这样的按钮:

CCMenuItemImage *okBtn = [CCMenuItemImage itemWithNormalImage:@"gameOkBtn.png"
                                                               selectedImage:@"gameOkBtnPressed.png"
                                                                       block:^(id sender)
                                         {
                                             //actions
                                         }];

我怎样才能在按下和发布时播放声音?在常规iOS开发中,我可以为UIButton创建子类,并为UIControl事件添加选择器。

编辑:这是子类

@implementation CCMenuItemImageSound

- (void)selected{
    [super selected];
    [[SoundManager sharedManager] playSound:kSoundButtonDown volume:0.5];

}

- (void)unselected{
    [super unselected];
    //this method gets called twice when you release the button
    [[SoundManager sharedManager] playSound:kSoundButtonUp volume:0.5];

}

@end

1 个答案:

答案 0 :(得分:1)

在CCMenuItem.m中添加,

[[SimpleAudioEngine sharedEngine] playEffect:@"button.mp3"];

在#pragma mark CCMenuItemSprite - CCRGBAProtocol协议下的 - (void)选择 - (void)未选择方法的定义中。  这将播放所有CCMenuItemImage项目的声音。

更好的选择: 如果你希望效果只有几个按钮,那么你可以继承CCMenuItemImage并覆盖上面提到的方法。

您需要在代码中的某处预加载mp3:

 [[SimpleAudioEngine sharedEngine]preloadEffect:@"button.mp3"];

您还必须将#import“SimpleAudioEngine.h”添加到您的CCMenuItem或您创建的子类中。