読者です 読者をやめる 読者になる 読者になる

世界が変わったのだから、自分も変わらなくてはならない。

エンジニア兼デザイナーのナカモリのブログです。

【Swift】タップしたら1点増えるスコア(点数)を表示させるには?

アプリ制作 Swift

f:id:takahironakamori:20160309223341p:plain

最近、Swiftが楽しい。

ということで、今日は「スコア(点数)を表示させるには?」を考えました。点数が上がるきっかけは今回は「画面をタップしたら1点増える」という設定にしました。

最初に思いついたあまり効率的ではない考え方

考え始めたときは、例えば150(点)を表示させると想定します。

まずは、0〜9までの画像化文字を用意します。

  1. 150を10で割った余りは「0」なので、「0」の画像化文字を表示します。
  2. 150を10で割ったは商(小数点以下切り捨て)である「15」を取得します。
  3. 15を10で割った余りは「5」なので、「5」の画像化文字を表示します。
  4. 15を10で割った商(小数点以下切り捨て)である「1」を取得します。
  5. 1を10で割った余りは「1」なので、「1」の画像化文字を表示します。

というステップを考えたのですが、Swiftで実装してみると面倒くさい。

こんな方法でいいのか?

ちょっと考え直した結果が次の方法です。

SKLabelNodeを使ったら簡単に実装できました

SKLabelNodeとは文字を表示する際に使用するNodeです。

Flashで言えば、TextFieldクラスみたいなものです。

もちろん、表示する文字(点数)も自由に変更することができます。

iOSの場合は、たくさんのフォントが入っていますので、画像化文字を使わなくてもいいかもしれません。適切なフォントが無かったらフォントを組み込めばいいかもしれません。

サンプルコード

今日できあがったサンプルコードは下記のとおりです。

タップすると1点増えるスコアを設置する

最初に考えた方法と比べると随分とスッキリしました。

よかったです。