2014年7月11日金曜日

cocos2d v3.1非互換:「SimpleAudioEngine」クラスの置き換え

<非互換項目>

  • 「SimpleAudioEngine」クラスが無くなっている

<対応方法>

  • 「OALSimpleAudio」クラスへ置き換える
  • 「SimpleAudioEngine sharedEngine」文字列を「OALSimpleAudio sharedInstance」へ置き換えれば一気に改修可能かも。
  • playEffectメソッド以外にBGM再生とかしていればそれぞれ対応しているメソッドへ置き換える。

<改修例>


- (ALuint)playSound:(SoundIDType)inSoundType
{
    // サウンド再生
    ALuint retSoundId = [[SimpleAudioEngine sharedEngine] playEffect:
                                  [_arraySounds objectAtIndex:inSoundType]];
    
    // 再生中サウンド識別子を返す
    return retSoundId;
}

          ↓

- (id<ALSoundSource>)playSound:(SoundIDType)inSoundType
{
    // サウンド再生
    id<ALSoundSource> retSoundId = [[OALSimpleAudio sharedInstance] playEffect:
                                            [_arraySounds objectAtIndex:inSoundType]];
    
    // 再生中サウンド識別子を返す
    return retSoundId;
}


<所感>

  • ほとんどのケースでは文字列置換だけで対処可能そうですけど凝ったサウンド機能を利用していた場合は結構大変かも知れませんね。


ではまた〜

0 件のコメント:

コメントを投稿