0

画像ファイルを CCSprite に追加する方法はわかりましたが、音声ファイルも追加するにはどうすればよいですか?

マップまたは辞書を保存できる属性はありますか?

参考までに、私はこれを投稿しているモバイルデバイスを使用しているため、コードは現在オプションではありません。質問を更新しようとします

アップデート:

私がやろうとしているのは、オーディオ ファイルを各 CCSprite に関連付け、タッチ ドラッグでオーディオ ファイルを再生することです。各 CCSprite は異なるオーディオ ファイルを再生します。オーディオ ファイルを CCSprite に添付または関連付ける最も簡単な方法を見つけようとしています。

4

4 に答える 4

1

OK、これが私が好むアプローチです。「バックグラウンドミュージック」サウンドと「エフェクト」サウンドのどちらを再生しているかによって異なります。

MP3サウンド、つまりバックグラウンドミュージックを再生している場合:

1)スプライトコンストラクターにパラメーターを追加して、サウンドファイルを割り当てます。

[MySpriteClass spriteWithSound:@"mySound.mp3"];

2)単に使用する:

// on touchDragged:
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:self.sound];

// on touchEnded: touchCancelled:
[[SimpleAudioEngine sharedEngine] stopBackgroundMusic];

注:このアプローチは、一度に1つのBGMしか再生できないため簡単です。


圧縮されていないサウンドを再生している場合、つまりエフェクト:

1)スプライトコンストラクターにパラメーターを追加して、サウンドファイルを割り当てます。

[MySpriteClass spriteWithSound:@"mySound.caf"];

touchDragged:2)戻り値を保存しながら、エフェクトを再生します。

// on touchDragged:
soundID = [[SimpleAudioEngine sharedEngine] playEffect:self.sound];

3) :touchEnded:の使用による影響を停止します。soundID

// on touchEnded: cancelled:
[[SimpleAudioEngine sharedEngine] stopEffect:soundID];

注:このアプローチは、一度により多くのサウンドを再生できるため、より優れています。


最後のコメント:

それぞれの異なるスプライトのサブクラス(つまり、、、FishSprite...DogSpriteなど)があり、任意のクラスのすべてのインスタンスが同じサウンドを持つ場合は、静的メソッドを追加して、そのクラスのサウンド名を返すことをお勧めします。

// 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];
于 2012-09-11T12:54:08.787 に答える
1

追加

#import "SimpleAudioEngine.h"

そして、単に

[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"XYZ.mp3"];
于 2012-09-11T11:14:56.207 に答える
1

Cocos2D では、次のように追加できますaudio file:-

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

を追加するspriteと、このオーディオ ファイルを使用できます。

于 2012-09-09T17:30:29.613 に答える
0

サブクラス化できる場合は、それを行い、オーディオ ファイルのプロパティを追加します。私の知る限り、いいえ、サブクラス化せずに余分な情報を追加することはできません。しかし、私は cocos2d を使用していないので、それは考慮してください。

于 2012-09-09T16:58:31.560 に答える