カーソルを配置するために、スタート地点は座標で指定した方が楽だがゴール地点に関してはそうでなくても問題ないと判断。
そこで、ゴール地点もゲーム中の動作と同様に色で識別する事にした。

赤い丸で囲まれた範囲に触れるとゴール。
コードは以下の通り。
if (bitmap[startByte+1] > 40 && bitmap[startByte+2] == 0 && bitmap[startByte+3] == 0){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ゲームクリア!"
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"次のステージへ" ,nil];
[alert show];
[alert release];
arertFlg = 1;
gameState = 1;
基本的にはゲーム中の動作と同じ。
ただ、黒のようにRGB全ての要素が変化した時ではなく、bitmap[startByte+1](=RGBのR)が40よりも大きくなった場合に適用される。
そして肝心の辞書作成。やはりうまくできない。。。
サンプルコードを読みなおして、このようにはできた。
NSMumatbeArray = *roadArray;
NSNumber *number2 = [NSNumber numberWithInt:2];
NSNumber *startXmax2 = [NSNumber numberWithInt:320];
NSNumber *startXmin2 = [NSNumber numberWithInt:195];
NSNumber *startYmax2 = [NSNumber numberWithInt:45];
NSNumber *startYmin2 = [NSNumber numberWithInt:0];
NSMutableDictionary *dict2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
number2, @"number",
startXmax2, @"startXmax",
startXmin2, @"startXmin",
startYmax2, @"startYmax",
startYmin2, @"startYmin", nil];
[roadArray addObject:dict2];
これはroad2.jpgに関する項目だが、プログラム本体には画像の枚数分の内容を記述してある。
それぞれの項目をNSNumber型で宣言し、dict2というNSMutableDictionary型の辞書に登録。
その辞書オブジェクトをNSMutableArray型の配列roadArrayに加える、、、ハズ。
しかしうまくいかない。
デバッガで見てもオブジェクトが登録されていない事になっている。

前回に比べてそんなに変わった箇所はないはずなのだが。。。
やはり外部的要因が考えられる。他にガシガシ記述したコードに不備があったのかもしれない。
明日以降は他のコードを見比べながらやって、、、いくよりも、前回残しておいたファイルから同じコードを記述していこうと思う。
この辞書作成によってスタート地点の定義が出来上がったら今度は見た目の要素も強化していきたい。
具体的にはトップメニューの作成をしたい。
大抵のゲームは急にゲームが開始するのではなく、メニュー画面からゲームをスタートさせる。
その画面でゲームの説明を記述したりと、今やるべき事は山積みだ。。。
WWDCまでにいかに完成度の高いアプリケーションを作れるか、正念場だ。
0 件のコメント:
コメントを投稿