我看到如何将图像文件添加到CCSprite但是如何添加音频文件呢?
我可以存储地图或字典的属性吗?
仅供参考我在移动设备上发布此代码,因此代码现在不是一个选项,会尝试更新我的问题
更新:
我要做的是将音频文件与每个CCSprite相关联,并在触摸时播放音频文件。 每个CCSprite将播放不同的音频文件。 我试图找出最简单的方法来附加或关联音频文件与CCSprite
答案 0 :(得分:1)
在 Cocos2D 中,您可以像这样添加audio file
: -
[[SimpleAudioEngine sharedEngine] playEffect:@"soundeffect.mp3"];
添加sprite
后,您可以使用此音频文件。
答案 1 :(得分:1)
添加
#import "SimpleAudioEngine.h"
然后简单
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"XYZ.mp3"];
答案 2 :(得分:1)
好的,这是我更喜欢的方法,取决于你是在播放“背景音乐”声音还是“效果”声音:
如果您正在播放MP3
声音,即背景音乐:
1)向sprite构造函数添加一个参数以分配声音文件:
[MySpriteClass spriteWithSound:@"mySound.mp3"];
2)只需使用:
// on touchDragged:
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:self.sound];
// on touchEnded: touchCancelled:
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic];
注意:这种方法很简单,因为您只能在任何指定时间播放一个BGM。
<小时/> 如果您正在播放未压缩的声音,即效果:
1)向sprite构造函数添加一个参数以分配声音文件:
[MySpriteClass spriteWithSound:@"mySound.caf"];
2)在存储返回值的同时在touchDragged:
上播放效果:
// on touchDragged:
soundID = [[SimpleAudioEngine sharedEngine] playEffect:self.sound];
3)使用touchEnded:
:
soundID
的影响
// on touchEnded: cancelled:
[[SimpleAudioEngine sharedEngine] stopEffect:soundID];
注意:此方法更好,因为它允许您一次播放更多声音。
最后备注:
如果您有每个不同精灵的子类(即FishSprite
,DogSprite
,...等),那么任何给定类的 ALL 实例都具有相同的声音,最好添加静态方法来返回该类的声音名称:
// somewhere in DogSprite.m
+ (NSString *)soundName {
return @"bark.caf";
}
为了完整起见,添加一个实现touchDragged:
,touchEnded:
的超类,因此您没有冗余代码:
// on touchDragged:
soundID = [[SimpleAudioEngine sharedEngine] playBackgroundMusic:[[self class] soundName]];
// on touchEnded: cancelled:
[[SimpleAudioEngine sharedEngine] stopEffect:soundID];
答案 3 :(得分:0)
如果您可以将其子类化,那么请执行此操作并为音频文件添加属性。据我所知,不,没有子类化,你不能添加任何无关的信息。但是我不使用cocos2d,所以不要使用它。