初開発iPhoneゲームに ブロック崩し を選択し、 参考サイトに助けられながら も実装を進捗するに 徐々に己独自の要素を持ち込みたくなるもの、 また此れなくばアプリ開発の意味はありませんし アップル社に申請したとて審査通過の後 App Storeに陳列されなどしないでしょう。
盛り込みたく目論んだのはゲームの一方の主役たるブロックが
開発機:MacBook Air(11-inch, Mid 2013)
MacOSバージョン:OS X 10.9.1
Xcodeバージョン:5.1
言語:Objective-C
主関連アプリ:uPanda Breaks Out Fruits
開発中のゲームアプリの構成としては UIViewController 上のViewを SpriteKit の Scene 足る BOPlayScene (BOは接頭辞としてBreak Outを略してもの)に遷移してゲーム画面を表示しており 面クリアーする毎にこのSceneを初期化して読み込んでいます。 この時当該クラス、及び所有するメソッド全てから参照出来る定数の如き扱いの 必要なだけの果物名を収めた配列を用意したいのでした。 即ちクラス変数としての配列の宣言を行いたいのです。 その際参考になったのがサイト ios-practice 0.1 documentation の以下の記事でした。
プロパティとインスタンス変数(ivar)BOPlaySceneでどのメソッドからもフルーツ配列を参照するに クラスのグローバル領域で以下を記述します。 此れはブロックのフルーツの種類(果物名)の配列で initWithSize で初期化される塩梅になっています。
然るに初期化メソッドに於いて一回だけ配列を記述すべきは 例としてリンゴ、バナナ、ブドウ、サクランボとなれば以下となるでしょう。
if (self) {
/* フルーツ配列の初期化 */
blockKindArray = [NSArray arrayWithObjects:@"apple", @"banana", @"grape", @"cherry", nil];
NSLog(@"Block Kind: %d", (self.stage - 1) % blockKindArray.count);
return blockKindArray[(self.stage - 1) % blockKindArray.count];
}
而して目論見は達成されました。 上のコードではログ出力に取得配列を確認していますが画像名を此れに合わせたファイルとすれば ステージに合わせた果物画像がブロックとして得られるでしょう。
バージョン: 4.12
リリース: 2014年9月15日
更新: 2022年4月20日
サイズ : 10.7 MB
互換性: iOS 14.4 以降のiPhone、iPod touch に対応。および、macOS 11.0以降とApple M1 チップを搭載したMac に対応。