游戏音乐与音效
cocos2d中使用SimpleAudioEngine可以很简单的播放背景音乐和音效
背景音乐默认是循环播放的,音效默认是播放一次,而且一般情况音效都是很短的。
下面我们首先来分析一下SimpleAudioEngine这个类
这个类中有三个属性(backgroundMusicVolume,effectsVolume,willPlayBackgroundMusic)但是没有用到我也不明白他们为什么要定义这三个属性
+ (SimpleAudioEngine*) sharedEngine
获取单例的方法
-(void) preloadBackgroundMusic:(NSString*) filePath
加载背景音乐,通过这个方法可以把游戏中需要用到的背景音乐提前加载好
-(void) playBackgroundMusic(NSString*)filePath;
-(void) playBackgroundMusic(NSString*)filePath loop:(BOOL) loop;
filePath:文件路径(项目中的文件名)
loop:播放循环 YES是循环播放 NO是播放一次 缺省了loop则默认为YES
-(void) stopBackgroundMusic;
停止背景音乐
-(void) pauseBackgroundMusic;
暂停背景音乐
-(void) resumeBackgroundMusic;
恢复播放背景音乐
-(void) rewindBackgroundMusic;
倒回,即重新开始播放背景音乐
-(BOOL) isBackgroundMusicPlaying
判断背景音乐是否正在播放
-(ALuint) playEffect:(NSString*) filePath;
ALuint :是无符号整形变量(unsigned int)同义词,即别名。这个返回值表示播放的音效ID。
filePath :文件路径
-(void) stopEffect:(ALuint) soundId;
在这里我们可以通过soundId,来停掉某一个音效,soundId的值是上一个方法获取到的。
-(void) preloadEffect:(NSString*) filePath;
加载音效,通过这个方法我们可以把游戏中用到的音效,都预先加载好,音效都会放在一个数组中,在播放的时候,直接根据filePath找到相应的音效播放。
-(void) unloadEffect:(NSString*) filePath;
释放某一个音效
-(CDSoundSource *) soundSourceForFile:(NSString*) filePath;
这个方法我们可以通过filePath来获取相应的音效的配置信息(CDSoundSource),CDSoundSource属性中有soundId,当我们想要停止某一个音效的时候可以通过这个方法来获取soundId。
-(void) setMute:(BOOL) muteValue
禁声,muteValue 值为YES时没有声音,相反则有声
-(void) setBackgroundMusicVolume:(float) volume
设置背景音乐音量volume这里如果不设置的话默认为1.0f,值越大音量越大
-(float) backgroundMusicVolume
获取背景音乐音量值
-(void) setEffectsVolume:(float) volume
设置音效音量volume这里如果不设置的话默认为1.0f,值越大音量越大
-(float) effectsVolume
获取音效音量值
//下面是常用的方法
加载背景音乐
[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"background.mp3"];
播放背景音乐
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"background.mp3"];
暂停背景音乐
[[SimpleAudioEngine sharedEngine] puseBackgroundMusic];
继续播放背景音乐
[[SimpleAudioEngine sharedEngine] resumeBackgroundMusic];
停止背景音乐
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic];
播放音效
[[SimpleAudioEngine sharedEngine] playEffect:@"effect1.wav"];
加载音效
[[SimpleAudioEngine sharedEngine] preloadEffect:@"effect1.wav"];
设置噤声
[[SimpleAudioEngine sharedEngine] setMute:YES];
设置音量
[[SimpleAudioEngine sharedEngine] setBackgroundMusicVolume:0.5f];
[[SimpleAudioEngine sharedEngine] setEffectsVolume:2.0f];
我把这些常用的方法封装了一下这里把代码提供给大家参考