PR

ゲームのロジック作成

2011年5月13日(金)
北村 真二

●GameControllerの拡張

次にGameControllerクラスの更新だ。interfaceにオオカミ用のGamePieceViewのインスタンスを追加する。

@interface GameController : NSObject {
  GameBoardView		*gameView;
  GamePieceView		*pieceView;		//うさぎ
  GamePieceView		*enemyView;		//オオカミ 追加
  BOOL				isPieceMoveing;
}
@property (nonatomic, retain) GameBoardView		*gameView;
- (id) initWithBaseView:(UIView*)baseview;
@end

実装部の初期化メソッドにてうさぎと同じようにオオカミのビューを生成して配置する。オオカミの画像はwlof00_000.png 〜 wlof00_011.png のファイルをあらかじめプロジェクトに追加しておく。画像は前回に説明した移動パターン計12枚だ。

図2:オオカミの画像
- (id) initWithBaseView:(UIView*)baseview {
  self = [super init];
  if (self != nil) {
  		~ 略 ~
  		//オオカミ
  		NSMutableArray*	array = [NSMutableArray array];
  		int			i;
  		for(i=0; i < 12; i++){
  				NSString*	name = [NSString stringWithFormat:@"wlof00_%03d.png", i];
  				UIImage*	image = [UIImage imageNamed:name];
  				[array addObject:image];
  		}
  		enemyView = [[GamePieceView alloc] initWithFrame:
  								CGRectMake(0, 0, 48, 48) 
  								Images:array 
  								Delegate:self];
  		enemyView.type = PIECETYPE_WLOF;
  		//配置
  		[gameView addSubview:enemyView];
  		GameBoardTile*	tile = [self.gameView tileAtIndex:22];
  		tile.piece = enemyView;
  		enemyView.tile = tile;
  		enemyView.center = [tile center];
  		//タイマースタート
  		[enemyView timerStart];
  		~ 略 ~
  }
  return	self;
}

そしてデリゲートメソッドをGameControllerで以下の様に実装する。やっているのはうさぎが現在表示されているGameBoardTileを返しているだけだ。

// うさぎキャラの配置されているGameBoardTileを返す
-(GameBoardTile*)gamePieceTargetMovTile:(GamePieceView*)piece {
  GameBoardTile*	tile = [pieceView tile];
  return	tile;
}

マップをタップしたときに、その位置のGameBoardTileをうさぎに対して移動先として設定するのと同じように、オオカミの場合はタイマーで常にうさぎのいるGameBoardTileを移動先として更新されるようにしておくわけだ。

Think IT会員限定特典
  • 「ゲームのロジック作成」サンプルプログラム

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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