メタルメサイアの念入りなチェックが一段落したところで、カードゲーム的要素のある「デッキ構築型RPG」を作っています。このゲームの戦闘システムはこの前作ったので、今度は2つ目の重要システムであるデッキ編集システムとその画面を作ることにしました。
UI設計
まず、デッキ編集ということでどういう画面にしたらいいかとあれこれ悩みました。デッキ編集の際は色々な情報が必要になるのですが、画面に収めるために情報を取捨選択する必要があります。結局、所持カードとデッキカードを2分割して左右に配置する形にし、さらに表示される情報は最低限にとどめました。
具体的には所持カードは種類が多くなるのでアイコンだけ表示し、カード名は下の欄に表示されるようにしました。一方でデッキカードはルール上10種類までに制限してあったので、アイコンとカード名、そして枚数を1行ずつ表示する形にしました。それから編集中にカードの効果を見たくなるときがあると思ったので、サブキーを押すとカーソルのあるカードの効果が表示されるようにしました。
あと、デッキにカードを追加・削除したり枚数を変更したりするインターフェースについては、数値を選択するだけでその辺の操作を行えるようにしました。このゲームはキーボードかゲームパッドでの操作になるので、こうするのがプログラムも実際の操作も一番簡単になると思います。
システム設計
デッキ編集システムの設計では、カーソル移動などは所持品一覧画面のものを流用できるので、基本的にカードのデッキ内への追加・削除や枚数チェックなどの処理を追加で設計しました。選択したカードをデッキに追加・削除したり枚数を変更したりするまでの流れは次のようになっています。
- デッキに入れられるカードの種類数に空きがあるかをチェック
- 同じ種類のカードがデッキに存在しているかをチェック
- 選択可能な枚数を決定
- カードを追加・削除・枚数変更する
こうやって書くと何のことはないように見えますが、実際はチェックや枚数決定が意外と複雑になったので苦労しました。