連載 :
実践!iOSで作るゲームアプリゲームのロジック作成
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メルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。