
AppleWatchアプリ開発遊戯「2048」
2014年に流行った「2048」という数字パズルのゲームを作ってみた。
このゲームは以前にプレイしたことはあるが、今回は作る立場からこのゲームを見ることができた。
ゲームルールの概要
4x4の16マス内のタイルをスライドさせると、タイルはマスの端まで移動し同時に新しいタイルが出現する。同じ数字のタイルがぶつかると2+2=4、4+4=8、8+8=16・・・というように足し合わされた数字のタイルに変わっていく。最終的に2048のタイルができればゲームクリア。
画面のデザイン
画面のデザインは以下のサイトを参考にした。
画面レイアウトができると、プログラミングのモチベーションが上がってくる。
ゲームの流れ
ゲームの全体の流れは以下のサイトを参考にさせてもらった。
細かなゲームの動作は、画面のデザインで参考にしたサイトでプレイして確認した。
プレイしていると、新たなタイルは"2"だけではなく、たまに"4"が出現した。WiKiで確認すると、10%の確率で"4"のタイルが出現するとのことだったので、プログラムに反映した。
新たなタイル(90%の確率で2のタイル、10%の確率で4のタイル)が出現する。
ゲームを途中でやめて新しくゲームをやり直す"New Game"ボタンはなしにして、"UNDO"ボタンに変更した。"UNDO"ボタンはタイルの移動方向をやり直すためというよりも、タイル移動後の結果が読めてなくて「あれ?」と感じた時にタイル移動前の状態を確認するため(笑)。
アニメーション効果
画面のデザインで参考にしたサイトのアニメーションが気に入った。新しいタイルが出現する時と、同じ数字のタイルが合わさる時にタイルが拡縮するアニメーションを追加した。スコアのアニメーションは再現が難しそうだった(ここに労力をかけるほど興味はない)ので、スコアの数字が滑らかに変化するアニメーションにした。
ゲームの操作方法
タイルのスライドは、AppleWatchの画面上で指のドラッグ操作で行うが、AppleWatchを装着した手首の動きだけでゲームができるようモーションセンサを使って操作できるようにしてみた。
しかし、AppleWatch画面は手首を傾けるとスリープ状態になる。スリープ状態になってしまうとアプリが停止してしまう。都度画面を上向に戻せばスリープが解除されるのだが、動作が止まるのでストレスになる。以前に作成した迷路アプリでも経験済みなのだが…。
あとがき
昔からコンピューターゲームで遊ぶのは得意ではなかった。そのためか、コンピューターゲームは遊ぶより作る方が楽しいと思っていた。
昔のコンピュータはOSがなかったしドライバも自分で作る必要があった。現在ではAPIが用意されている。ハードウェアを直接制御する喜びはなくなってしまったが、簡単に高度な機能が実現できるようになった。
若い時にプログラミング言語を経験していれば、シニアになってからは新しい言語を学習する必要はなさそうだ。それは、文法やエラー処理など、都度ググれば解決できる時代になったから。
「AppleWatchアプリ開発遊戯」は自分の認知症の進行を抑える効果があるのではと期待している。