Кнопка звука не работает? cocos2d
Я попробовал этот код, он не работал, я хочу, чтобы кнопка воспроизводила звук при нажатии.
-(void)starButtonsound:(id)sender
{
[[SimpleAudioEngine sharedEngine] playEffect:@"fire_truck_1.wav"];
}
В init
starMenuItemsound = [CCMenuItemImage
itemWithNormalImage:@"play.png" selectedImage:@"play.png"
target:self selector:@selector(starButtonsound:)];
starMenuItemsound.position = ccp(525, 500);
[self addChild:starMenuItemsound z: 4];
starMenuItemsound.scale = 0.75;
В чем дело?
3 ответа
Решение
В init
{
// Using SpriteSheet ? Use spriteWithSpriteFrameName in place of spriteWithFile
CCSprite *spriteNormal = [CCSprite spriteWithFile:@"play.png"];
CCSprite *spriteSelected = [CCSprite spriteWithFile:@"play.png"];
ccColor3B color = {128,128,128};
spriteSelected.color = color;
starMenuItemsound = [CCMenuItemImage
itemWithNormalSprite: spriteNormal selectedImage: spriteSelected
target:self selector:@selector(starButtonsound:)];
starMenuItemsound.position = ccp(525, 500);
starMenuItemsound.scale = 0.75;
CCMenu *menu = [CCMenu menuWithItems: starMenuItemsound, nil];
menu.position = ccp(0.0f,0.0f);
[self addChild: menu z:4];
}
Функция вызова:
-(void) starButtonsound:(id)sender
{
[[SimpleAudioEngine sharedEngine] setEffectsVolume:1.0f]; //Do this in init method
[[SimpleAudioEngine sharedEngine] playEffect:@"fire_truck_1.wav"];
}
А) Установите точку останова - необходимые знания для любого программиста.
Б) Селектор CCMenuItemImage не принимает аргумент. Удалить двоеточие из @selector(startButtonSound)
и измените метод на это:
-(void)starButtonsound
{
[[SimpleAudioEngine sharedEngine] playEffect:@"fire_truck_1.wav"];
}
Некоторые сообщили, что это решение: отключить и снова включить звук (без шуток)
[SimpleAudioEngine sharedEngine].muted = YES;
[SimpleAudioEngine sharedEngine].muted = NO;