ハイスコアに準じてUIViewぱらぱらアニメを変更する

ウパンダのハイスコア・ダンシング

手元の開発ゲームアプリに於いては タイトル画面でぱらぱらアニメを実装 していましたので其の応用でゲームオーバー時にゲームの主人公足る ウパンダ がゲーム画面でボールとなってクルクル回り過ぎた余り 目を回しているアニメーションを表示させるようにしました。 また得点を争うゲームに於いては必要欠くべからざる機能として ハイスコア保存機能 を実装していましたのでハイスコアが如何程であるか其の値を取得出来もします。 此の両者の合わせ技として ハイスコア達成時のゲームプレイのゲームオーバー画面には ハイスコアボードを掲げてハイスコアダンスを踊るウパンダに変更したく考えました。 ハイスコアに応じてUIViewで実装したゲームオーバー画面に表示される ぱらぱらアニメを変更する仕様となる訳です。

スポンサーリンク
日付:2014年4月9日
開発機:MacBook Air(11-inch, Mid 2013)
MacOSバージョン:OS X 10.9.2
Xcodeバージョン:5.1
言語:Objective-C
主関連アプリ:uPanda Breaks Out Fruits

ゲームオーバー画面では同じViewController上での実装ですが SpriteKitフレームワークを読み込んだゲームプレイ画面は破棄していますので テクスチャアトラスを用いたアニメーション ではなくUIKitを用いたUIView上での実装となっています。 必然的にゲーム画面SKSceneで取得したハイスコアもゲームオーバー画面のUIViewに受け渡ししなければなりません。 此の実現方法については現在閉じられていますがブログ iOSゆとりプログラミングのススメ に実に有用な方法が紹介されていました。 現在 もっさりさん 名義の電子書籍として iOSゆとりプログラミング がまとめられていますので手元に用意してはいませんので判然しませんが 若しかしたら当該情報も掲載されているかも知れません。

当時公開されていたのは即ちゲームが起動された際に読み込まれ実行される AppDelegate で何でも取り込め得る辞書を生成しクラスが遷移しようとも ゲーム内のどの場面からでも此の辞書にアクセス出来るようにする手法と実装コードでした。 此れを用いるに手元の開発アプリではステージ間のスコア等受け渡しに利用したのです。 AppDelegate.mの中で お片づけ箱 と訳す洒落の効いた toyBox と称す可変辞書を生成してステージ間でステージ数や残機数などを受け渡ししているのです。

self.toyBox = [[NSMutableDictionary alloc] init];

画面遷移したViewControllerでAppDelegateを読み込み 此のtoyBox辞書を然るべく取り扱う実装となっているのでした。 此れを今回の仕様に利用するにゲーム画面に於いて 新たにハイスコアを獲得したか如何かのフラグを設定します。 初期値は0としますのでAppDelegate.mでは以下の如く記述すれば宜しいでしょう。

[toyBox setObject:@"0" forKey:@"hs_flag"];

ゲームオーバー時ハイスコアを保存するにはゲーム画面となる PlayScene.m クラスのメソッド -(Boolean)Save_Date:(NSString *)sKey :(NSString *)sItem に於いてハイスコアフラグを設定します。 ハイスコア取得時、成功の場合と失敗の場合を記述すれば以下の如くなるでしょう。

  • ハイスコア獲得成功
    BOAppDelegate *appDelegate =
      [[UIApplication sharedApplication] delegate];
    NSString *highScoreFlag = @"1";
    [appDelegate.toyBox setObject:highScoreFlag forKey:@"hs_flag"];
  • ハイスコア獲得失敗
    BOAppDelegate *appDelegate =
      [[UIApplication sharedApplication] delegate];
    NSString *highScoreFlag = @"0";
    [appDelegate.toyBox setObject:highScoreFlag forKey:@"hs_flag"];

以て此の取得したハイスコアフラグのブール値を受け取った ViewControllerに於いて分岐条件として利用しUIViewを選択 然るべきアニメを表示する算段となります。

さて此の方法を実際に試したみた処 問題が発生しましたが其の解決は次稿に譲ります。

uPanda Breaks Out Fruits
無料:カテゴリ: ゲーム: 4+ 評価
バージョン: 4.12
リリース: 2014年9月15日
更新: 2022年4月20日
サイズ : 10.7 MB
互換性: iOS 14.4 以降のiPhone、iPod touch に対応。および、macOS 11.0以降とApple M1 チップを搭載したMac に対応。

1件のコメント

コメントは受け付けていません。