NSUserDefaultsでハイスコア保存機能

ゲームの定番機能と言えばそれこそインベーダーゲームの頃より ハイスコア であるのは論を俟たないでしょう。 弾を勘定しながらUFOを待つのだって 名古屋撃ち だって全ては他人より高い得点を出すためで 従ってプレイヤーに取ってはゲームでは証拠となる最高得点が保存、出力されるべく なくてはならない必須機能となる道理です。

High Score

それではiPhoneアプリではどのようにその機能を実現すれば良いのでしょうか。 幾つか考えられる内の今回は標題にもある NSUserDefaults を用いた方法で実装してみました。

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

NSUserDefaultsは本ブログでも2016年5月23日の記事 設定画面作成のための紆余曲折 にも記したようにアプリ外部、即ちiPhone本体にデータを保存する一般的な方法です。 2016年5月23日の記事では設定データを保存し、 今回はハイスコアに此の機能を適用しようという魂胆です。

NSUserDefaults Class Reference

一旦NSUserDefaultsがそのようなクラスであると知れば 此れをキーワードに検索すれば様々な情報が得られます。 例えばサイト 始める!!iPhoneアプリ の2013年1月12日の記事などは参考になるでしょう。

005-保存機能(NSUserDefaults)

上記記事を参考に当該ViewControllerにハイスコア取得関数 -(NSString *)Get_Data:(NSString *)sKey を実装し -(void)viewDidLoad のタイミングで実行、また保存は SpriteKit の当該 Scene クラスに -(Boolean)Save_Date:(NSString *)sKey :(NSString *)sItem を実装し -(void)gameOver が呼び出されたタイミングで実行したところどうやら目論見通り運びました。

【Objective-C】NSUserDefaultsを使ってハイスコアをセーブ

更には上のサイト 夏までにiPhone アプリつくってみっか! の2013年6月14日の記事を見付けるによって ハイスコアの保存、取得、表示機能を別クラスとして実装したい欲求も湧き、 実際にその如く実践、実装もしましたが此の時は此れに留むるに依りて 記事に紹介するのは又の機会にいたしたく候。

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 に対応。