連載 :
実践!iOSで作るゲームアプリゲームのロジック作成
2011年5月13日(金)

●GameControllerの拡張
次にGameControllerクラスの更新だ。interfaceにオオカミ用のGamePieceViewのインスタンスを追加する。
1 | @interface GameController : NSObject { |
2 | GameBoardView *gameView; |
3 | GamePieceView *pieceView; //うさぎ |
4 | GamePieceView *enemyView; //オオカミ 追加 |
5 | BOOL isPieceMoveing; |
6 | } |
7 | @property (nonatomic, retain) GameBoardView *gameView; |
8 | - (id) initWithBaseView:(UIView*)baseview; |
9 | @end |
実装部の初期化メソッドにてうさぎと同じようにオオカミのビューを生成して配置する。オオカミの画像はwlof00_000.png 〜 wlof00_011.png のファイルをあらかじめプロジェクトに追加しておく。画像は前回に説明した移動パターン計12枚だ。
|
図2:オオカミの画像 |
01 | - (id) initWithBaseView:(UIView*)baseview { |
02 | self = [super init]; |
03 | if (self != nil) { |
04 | ~ 略 ~ |
05 | //オオカミ |
06 | NSMutableArray* array = [NSMutableArray array]; |
07 | int i; |
08 | for(i=0; i < 12; i++){ |
09 | NSString* name = [NSString stringWithFormat:@"wlof00_%03d.png", i]; |
10 | UIImage* image = [UIImage imageNamed:name]; |
11 | [array addObject:image]; |
12 | } |
13 | enemyView = [[GamePieceView alloc] initWithFrame: |
14 | CGRectMake(0, 0, 48, 48) |
15 | Images:array |
16 | Delegate:self]; |
17 | enemyView.type = PIECETYPE_WLOF; |
18 | //配置 |
19 | [gameView addSubview:enemyView]; |
20 | GameBoardTile* tile = [self.gameView tileAtIndex:22]; |
21 | tile.piece = enemyView; |
22 | enemyView.tile = tile; |
23 | enemyView.center = [tile center]; |
24 | //タイマースタート |
25 | [enemyView timerStart]; |
26 | ~ 略 ~ |
27 | } |
28 | return self; |
29 | } |
そしてデリゲートメソッドをGameControllerで以下の様に実装する。やっているのはうさぎが現在表示されているGameBoardTileを返しているだけだ。
1 | // うさぎキャラの配置されているGameBoardTileを返す |
2 | -(GameBoardTile*)gamePieceTargetMovTile:(GamePieceView*)piece { |
3 | GameBoardTile* tile = [pieceView tile]; |
4 | return tile; |
5 | } |
マップをタップしたときに、その位置のGameBoardTileをうさぎに対して移動先として設定するのと同じように、オオカミの場合はタイマーで常にうさぎのいるGameBoardTileを移動先として更新されるようにしておくわけだ。
「ゲームのロジック作成」サンプルプログラム
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。