ゲームの仕上げ

2011年6月3日(金)
北村 真二

今回でこの連載も最終回となる、最後にサウンド再生、残りタイム表示と、ゲームがタイトル画面とゲーム画面のフローでループできるよう実装して、ゲーム部分の仕上げをしたいと思う。

サウンドの再生

まずはサウンドの再生から実装していこう。ゲーム中ではSE(サウンドエフェクト)とBGMの2つを鳴らすが、それぞれ必要なフレームワークをプロジェクトに追加する必要がある。AudioToolboxとAVFoundationの2つのフレームワークを追加しよう。

図1:フレームワークの追加(クリックで拡大)

そして、GameController.h に以下のようにサウンド用のプロパティーを追加しておく。

01@interface GameController : NSObject {
02  GameBoardView     *gameView;
03  GamePieceView     *pieceView;     //うさぎ
04  GamePieceView     *enemyView;     //オオカミ
05  int               carotCount;
06  BOOL              isGameClear;
07 
08  //サウンド
09  NSMutableArray*       seArray;        //SEの配列
10  AVAudioPlayer*        bgmPlayer;      //BGM再生クラス
11}

SEの再生

まずSEを再生しよう。サウンドデータを作りプロジェクトに追加する必要がある、本来はシーンごとにSEを用意するのだが今回は1つのSEを鳴らすようにする。iOSでは .aif / .wav / .mp3 などの一般的なフォーマットを再生することができるが、今回は se00.caf というコア・オーディオというフォーマットのサウンドファイルを使用することにする。コア・オーディオファイルについては後ほど説明する。

SEは再生用のクラスとそのインスタンス作り、それで再生を行う。以下がSE再生用のクラスになる。

<クラス定義>

1#import <UIKit/UIKit.h>
2#import <AudioToolbox/AudioServices.h>
3 
4@interface SoundEffect : NSObject {
5  SystemSoundID soundID;
6}
7- (id)initWithContentsOfFile:(NSString *)path;
8- (void)play;
9@end

<クラス実装部>

01#import "SoundEffect.h"
02 
03@implementation SoundEffect
04- (id)initWithContentsOfFile:(NSString *)path {
05  self = [super init];
06  if (self != nil) {
07  NSURL *aFileURL = [NSURL fileURLWithPath:path isDirectory:NO];
08  AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &soundID);
09  }
10  return self;
11}
12 
13-(void)dealloc {
14  AudioServicesDisposeSystemSoundID(soundID);
15  [super dealloc];
16}
17 
18-(void)play {
19  AudioServicesPlaySystemSound(soundID);
20}
21 
22@end
23 
24GameControllerクラスの初期化時に以下のコードを追加して SoundEffectのインスタンスを配列の保持しておく。
25 
26  // SE
27  seArray =  autorelease];
28            efView.isFinishDelete = NO;
29            efView.isLoop = NO;
30            [gameView addSubview:efView];
31    efView.center = CGPointMake(320/2, 460/2);
32    [efView setAnimeBoundsScaleFrom:0.0 To:1.0 Duration:0.5];
33  }
34}
  • 「ゲームの仕上げ」サンプルプログラム

STUDIO SHIN

家庭用ゲームの企画開発、Mac OS / iOSアプリの開発を主な生業とする。
20年ほど前から家庭用ゲーム開発に携わりファミコンからDS、PSP、Wiiまで幅広く開発。15年前からMac OS Xアプリケーションを開発「DotShotX」「GIFQuickMaker」などを公開。iPhoneアプリ「将棋盤」「DotTouch」「Rabbit Maze」などを開発。開発アプリはアップルのApp Storeで公開中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています