NSUserDefaultsでハイスコア保存機能

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

High Score

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

iOS7のステータスバーが厄介

iPhoneのアプリなればこそ特徴的な処理も施さねばならず ステータスバーの措置は其の一つと言えるでしょう。 ゲーム画面に於いては基本的にステータスバーは表示は好ましくなけれど ゲーム画面を離れた設定画面では時間や電池残量などの把握のためにも表示した方が宜しかろう、 などと考慮するから発展するに 任意に表示、非表示を制御すべし、との目論見を抱いたのでしたが、 然うは問屋が卸してはくれませんでした。

Ballons Occupy ステータスバー

今回結論から言えばアプリ全体を通して ステータスバーを非表示設定にさせるように落ち着いたのですが 少しく試行錯誤を記し置くものです。

SKViewクラスpausedプロパティ

アクションゲームでプレイ中に一時停止したいのは屡々起こり得るところ、 それに思い至ったのはゲームに興じている最中に実感したなどというものではなく iPhoneゲームアプリ開発中のテストプレイで デバッグのため先に進めたい場面で話し掛けられるなどした際の話なのですが、 孰れ無駄にはならぬ機能でしょう。 其れが為に昨日2016年5月23日の本ブログ記事 SpriteKitでタッチボタン実装 でタップで反応する画像ボタンの実装を考えたのでした。

而してどうやらこうやら理想には遠かれど然るべき画像ボタンタップに反応する機能は実装がなったのでしたが ボタンがタップされたらゲームの進行を止めなければなりません。 所謂 ポーズ 機能です

ポーズボタン

SpriteKitでタッチボタン実装

iPhoneアプリであれば画面をタッチして機能するボタンの実装は必須です。 簡単なように思えてこれがいざ実装しようとすると途方に暮れるのも iPhoneアプリ開発に馴染みない者に有り勝ちな光景かも知れません。

ゲームポーズ用タッチボタン画像

一つにはボタン実装には幾つか手法が有るにも関わらず其れさえ把握出来ていないからで、 ネットを繰れば名前が其れらしい UIButton を見付け試してみるも例えばタッチの検出やボタンを画像化するなど 思った通りにことが運ばないのが困惑に拍車を掛けたりするものです。

設定画面作成のための紆余曲折

iPhoneアプリ開発に於いてはメイン機能ばかり作成していて済む筈もありません。 付随する機能も作り込んでいかなければいけないのは言う迄もないでしょう。 手元のアプリをご覧になれば殆どが設定画面を有しているのではないでしょうか。 代表的なアプリとして Twitterではプロフィール画面に歯車アイコンが用意されていますし、 Facebookではその他画面にこれも歯車アイコンと共に横に設定と記された 設定画面への遷移動線が用意されています。 即ち手元で作成中のプロジェクトのゲームアプリに於いても 設定画面はアプリとして必要欠くべからざる画面となる道理です。 ブロック崩しゲームの目論見としてはパドルスピードや効果音のオン・オフ、 ハイスコアのクリアなどを設定画面に盛り込みたく考えたのでした。

設定画面遷移

アプリ開発の参考書籍と実参考サイト

iPhoneアプリ開発参考書籍

プログラミングの経験がある者でさえ 全くのゼロからiPhoneアプリ開発に取り掛かる際は 戸惑う部分も多いでしょう。 矢張りそんな時には参考書籍が役立ちます。

巷間書肆を巡れば書棚の一段を iPhoneアプリ開発のための参考書籍が占めるのを認めるのも珍しくないほど 関連書は多く世に溢れています。 店頭にて矯めつ眇めつしつつ中の数冊を購入したりしましたが 残念ながら多くは参考のための掲載ソースを 自らのアプリ開発に流用するのは許されていません。

16進カラーを小数変換する

160521

画面上に色を表現するにはプログラミングに於いては様々な決まりがありますが、 Xcodeに於いても例外ではありません。 フォトショップなど DCC(Digital Content Creation)ツールでは

  • 16進カラーコード
  • RGB
  • HSB
  • CMYK

など提供されますが、Xcode上で必要になるのはRGBそれぞれに於いて 0から1の間で示される小数です。

現状Webなどでは16進カラーコードが主流になっていますので、 これから妥当な形に変換する必要が惹起され、 16進カラーコードから一旦RGB変換し然る後それぞれ255で割った商を求めて小数変換するなど、 これがなかなかに面倒な作業です。

途中git追加

XcodeでiPhoneアプリを作成するに先ずはプロジェクトを作成し、 不適切なものが出来すれば プロジェクト削除 などしてプログラミングを進捗せるのでしたが、 このプロジェクトを作成するときにバージョン管理の git を使用するようには設定しなかったのは 取り敢えずはプレーンな状態で様々試行しようと考えたからでした。

ところで折角Xcode開発環境ではバージョン管理の git を機能せしめられるのですから使わない法はありませんし、 孰れ役に立つ筈であると思うに至りました。

プロジェクト削除

iPhoneアプリ作成に於いては何はともあれXcode上にプロジェクトを作成します。 iPhoneアプリはこのiPhoneアプリパッケージングに不可欠な各情報を含むプロジェクト内に作成するのでしたが、 最初の内は作法も分からず闇雲な部分も多くありますので 不適切なプロジェクトが作成されてしまうことも多いように思います。

本ブログの2016年5月17日の記事 Xcode5インストール にてiPhoneアプリ開発に着手し始めて四日後には早、 この陥穽に落ちプロジェクトを削除する必要に駆られました。

Xcode5インストール

既に二年半以前の投稿とはなりますが Windows XP機の終了とMacBook Air Mid 2013(11インチ)への移行 で記したようにMacBook Airを導入したのは一つにはiPhoneアプリ作成の目論見があるからでした。 そのためには先ずは何はともあれアップル社がMacに無償で提供する開発環境となる Xcode をインストールする必要がありました。

Xcodeをインストールしたのは導入より歳を越した2014年1月15日です。