![見出し画像](https://assets.st-note.com/production/uploads/images/172602043/rectangle_large_type_2_5eac268eb6f9ea6ca2a7ddeb565e3096.png?width=1200)
ゲーム開発進行状況報告:その20「弓と爆弾の実装に取り掛かります」
本日より、弓と爆弾の作成に取り掛かかりたいと思います。
その前にコレらのシステムを作成するにあたり、簡単に構築方法をまとめておきたいと思います。
注意点ですが、下記の方法はあくまで実装方法の一例です。またメモ書きの段階なので確実にこのやり方で実装ができるかは不明です。
後日noteにて、成功か否かの結果報告をさせて頂きたいと思っています。
弓の実装方法
レトロ2Dの弓システムということもあり比較的容易に実装できると思います。
要はシューティングゲームの弾を矢の形にして飛ばすだけです。
やることは非常にシンプル。
とはいえ私はUnityにおいてシューティングゲームの弾すら作ったことはありません。
もしかしたら「できませんでしたあ!!」とか言うかもしれませんね。
ただChatGPT先生にも弓の実装を確認したところ、ほぼほぼ私の予想通りの方法であったことから難易度は比較的低いと判断しました。
なのでまずは弓から実装してみます。概要は以下の通り。
弓の発射処理
キーボードの “L” を押したか判断。押されたら次の処理へ
弓の所持数(PlayerBows)を確認
所持数が 1 以上なら弓プレハブをプレイヤーの正面に生成
弓の 所持数を 1 減らす
クールダウン 0.1 秒
弓の発射時に SE を再生
矢の挙動(Arrow スクリプト)
プレイヤーの正面方向に常に等速で進む
壁やオブジェクトに衝突したら消滅
トップダウン/プラットフォーマー両対応
トップダウンの場合: プレイヤーの向きは 2D 平面上での移動方向
プラットフォーマーの場合: プレイヤーの左右向き(isFacingRight など)
少し厄介なのは私のゲームにはトップダウン(上から見下ろした視点)とプラットフォーマー(横スクロールゲームの視点)の2つのマップタイプが存在することです。
これにより若干の挙動修正が必要になるかなと思います。
ただ、どちらにせよ”プレイヤーの正面にまっすぐ矢が等速で飛んでいく”というシンプルなシステムに変わりはないので問題はないでしょう。
というワケでまずは矢の実装にこれから取り掛かります!
2/1日追記
弓のプロトタイプ完成しました!以下がそれを紹介している動画です(ブログの更新が止まっていたため、最新の動画になっています)
仕様は以下の通りです。
・Lキーで発射
・長押しでチャージ可能。チャージの長さに応じて矢のスピードが変わる
・矢には乗ることができる。その状態でジャンプも可能
大きくはこんな感じです。ひとまずできて良かった!
また進捗あれば報告いたします。