[Departure from the Void] 自機操作周りを実装中・・・

早速ながら制作中のシューティングゲーム「Departure from the Void」の制作日記です。

今日は1時間くらいかけて自機周りの操作ロジックを実装していました。

とりあえず、自機を動かすのと自機からショットを発射するところまでできました。

20170202_1

自機を動かす部分は以下のようなスクリプトで実装しました。
ソースが汚いので要注意ですorz
(初めてGistを使いました・・・)

オーソドックスにpositionに速度を積分する方法で実装しました。
正規化された方向入力AppCore.Input.Axisにspeedを掛けたベクトルが自機の移動速度になります。

上記計算のままでは画面外に出てしまう可能性があるため、位置補正を行っています。

movableArea.rectが画面領域、radiusは自機の半径です。
自機の大きさを考慮して画面外に出たら画面端の位置に補正するようにしています。

ショットの発射は以下のようにして行いました。

IPlayerShooterコンポーネントがショットの発射を管理するようにしました。
shootButtonは発射ボタンを管理するオブジェクトです。
(説明がざっくりしすぎてすみません・・・)

ショットボタンが押された瞬間にでショット発射命令を発行し、離された瞬間にショット発射停止命令を発行するようにしました。

OnDown、OnUpはUniRxのIObservableクラスです。
このゲームではショットを連射させる必要があったため、このような命令発行の仕様にしました。

時間が無くなったため、ショット発射処理については明日以降にまた記事にできればと考えています。
以下、自機操作クラスの全体を記して終わりにします。

それではまた明日・・・