スクリーンショット_2019-07-12_23

斜め移動ができるようになった ローグライク(仮)

2年目の2日目からは、斜め機能の実装に取り掛かることになりました。とりあえず移動はできるようになったので、昨日の実装したものと合わせて動画にしました。

機能の詳細

斜め機能とは、かつてマスの移動や攻撃などに上下左右のみを扱う前提だったこのゲームに新たに追加された全8方向を考慮したマスの概念の総称です。この内、今回は斜めに移動できるようにする部分までを作っています。

斜め機能の中にはいろいろなものがあって、例をあげると
・斜めに移動
・斜めに攻撃
・斜めにその他アクションをする
・敵や味方も斜めに移動や攻撃などを行う
などなどあります。

今日実装したもの

今回実装したものは単なる座標の移動だけではなく、自然に操作できるような細かな実装もたくさんあります。

まずは、入力デバイスから、ゲーム上の「オペレーション」に変換する機能です。いわゆるビューとロジックの分離をキレイに実現しているので、ロジック側にキー入力の処理を書きたくなかったからです。ビューと同じレイヤーに操作系のコンポーネントを作って、それが「メニューでの操作結果(どのアイテムをどんなふうに使ったかなど)」や「移動」などの結果を「オペレーション」という形でロジック側に指示を出すような形になっています。ちなみにロジックはその指示を受け入れずに無視する場合もあります。(細かい説明になりますが、壁がある場所へ移動しようとした場合、ターンを進めずに移動も行わずに、キャラクタの向きだけ変更する、というような場合などはロジックはオペレーションを無視をします)。

つぎに、斜めの概念を追加しました。方向という型があるのですが、これには上下左右しか実装されておらず、それに斜め4方向を追加しました。方向型は座標変換や向きの回転など、様々な演算処理にも利用しているので、今回の拡張は多くの実装に影響をしました。

さらに、斜め移動についても実装しました。今の所プレイヤーの移動のみですが、これまでの移動ロジックを少し拡張することで簡単に実現できました。元々存在したユニットテストに移動ロジックのテストが丁寧に書かれていたことが功を奏して、ほとんど無意識に追加したコードで移動は実現できてしまいました。過去の自分に感謝をしました。

また、斜め移動をしやすくするために「斜め移動補助キー」を押しながら方向入力をすると、斜めのときだけ移動が反映されるような仕組みも実装しています。斜めの入力はボタンの同時押しが行われるので、確実な操作のための工夫です。風来のシレンにある機能なのですが・・・。補助中だとわかる表示もありませんが、これは次回以降の予定です。

次回の実装予定

攻撃の斜め対応を予定しています。これには少し問題があって、今向いている方向がわかりにくく、攻撃しようとする方向がプレイヤーの意図と合っているか判断がし辛い部分の改善も含めています。キャラクタの絵は左右しか方向を持っていないので、絵を作り直すか、矢印など補助的な表示を追加することでカバーするか、そういった部分も同時に検討する必要があります。

また、プレイヤー以外も斜めに移動するように実装するべきですので、それも着手できそうならやろうと思います。経路探索の実装は斜めも考慮して実装済みだったはずなので、それほど大変な作業ではないと思います。敵が斜めに攻撃する処理も作らねばなりませんね。

壁の角を斜めに移動できて良いのか、というような仕様に関する検討も進めなければなりませんね。斜めってめんどくさいので、部屋以外では斜め移動しなくてよいように作ろうかなーと思っているので壁の角は移動できないようにするとは思いますが、それにより損なわれてしまう遊びがないかは十分に考えておくべきでしょう。風来のシレンと同じように斜め移動できる壁とそうじゃない壁の二種類を実装することも含めて、検討しようと思います。

おわりに

今日は整体と精神科への通院の予定があって時間はあまりありませんでしたが、それでも十分に進捗がでて大変順調です。

ちなみにですが、整体への通院や薬の変更などの影響からか、このところ、特に具体性のない幸福感が続いています。急にダンスを踊りたくなったり、顔が勝手ににやけたり、思春期のころのような気持ちに近い症状がでています。楽しいので実害はありませんが、高ぶった気持ちが急に落ち込む可能性もあるので、なるべく平常な状態に調整するために、今日も薬が少し変更されました。薬がききやすい体質らしく、調整が難しいようです。

2年目にして大きな方向転換を決断できたのも、この幸福感が関係しているような気がしています。

これからのことはまだわかりませんが、精神科の先生とも話して、順調に快復していると言ってもらえたので、この調子が続けば社会復帰も期待できそうです。掃除洗濯風呂食事睡眠などなど、これまで上手くできなかったことが毎日できるようになって、さらに外出やラジオ体操も毎日できています。この調子でゲーム制作も勧めていきたいと思います。

応援してくださると嬉しいです。よろしくお願いいたします!