ゲームのロジック作成

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を移動先として更新されるようにしておくわけだ。

  • 「ゲームのロジック作成」サンプルプログラム

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メルマガ会員のサービス内容を見る

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