@ adam.artajew'un cevabı için teşekkürler! Ben Cocos2D v3
ile kullanmak için modifiye ve oyunun herhangi bir yerinden kullanmak için ses motoru Crossfade
bir kategori yaptı. Şimdi gerçekleştirir aşağıdaki eylemler:
- Fade
- değiştir parça
- Fade out
OALSimpleAudio+Crossfade.m
yılında
bu ithalat şunlardır:
#import "CCDirector_Private.h"
#import "CCActionManager.h"
Ve yöntemini uygulamak:
- (void)playBg:(NSString *)name crossfade:(BOOL)crossfade {
// Skip if already playing requested track
if (self.bgPlaying &&
[self.backgroundTrack.currentlyLoadedUrl.lastPathComponent isEqualToString:name]) {
return;
}
// Play right now if no crossfade needed
if (!crossfade) {
[self playBg:name loop:true];
}
// Fade out just if music's playing right now
NSMutableArray *actions = [NSMutableArray array];
if (self.bgPlaying) {
id fadeOut = [CCActionTween actionWithDuration:0.5 key:@"bgVolume" from:self.bgVolume to:0.0f];
[actions addObject:fadeOut];
}
// Replace current track with fade in effect
id playNew = [CCActionCallBlock actionWithBlock:^{
[self playBg:name loop:true];
}];
id fadeIn = [CCActionTween actionWithDuration:0.5 key:@"bgVolume" from:0.0f to:1.0f];
// Combime final action
[actions addObjectsFromArray:@[playNew, fadeIn]];
id sequence = [CCActionSequence actionWithArray:actions.copy];
// Run action
[[[CCDirector sharedDirector] actionManager] addAction:sequence target:self paused:NO];
}
Kullanımı:OALSimpleAudio+Crossfade.h
Dahil ve
[[OALSimpleAudio sharedInstance] playBg:@"MainBgMusic.mp3" crossfade:YES];
Tamam diyoruz, teşekkür ederim. –