Open6

フロッガーゲームを作る

Ittoku(いっとく)Ittoku(いっとく)

3Dを使ったゲーム開発になるのだが、位置がどのようになっているのか理解するのに苦労した。

自分の中では、xは横の移動、yは縦の移動、zは奥手前の移動になる。

このゲームではタイルを敷いて、その上にプレイヤーを置くので、タイルをiとjで表現する。

つまり、プレイヤーの移動はxはiと連動し、zはjと連動する。

またプレイヤーの位置をx, zだと分かりにくいので、i, jで表現することにする。

Ittoku(いっとく)Ittoku(いっとく)

3Dを使ったゲーム開発になるのだが、位置がどのようになっているのか理解するのに苦労した。

自分の中では、xは横の移動、yは縦の移動、zは奥手前の移動になる。

このゲームではタイルを敷いて、その上にプレイヤーを置くので、タイルをiとjで表現する。

つまり、プレイヤーの移動はxはiと連動し、zはjと連動する。

またプレイヤーの位置をx, zだと分かりにくいので、i, jで表現することにする。

Ittoku(いっとく)Ittoku(いっとく)

bevyCamera3dBundleにはlooking_atというメソッドがあるのだが、そこに入れる値を参照することができない。

そのため、コンポーネントを用意し、カメラに登録し、構造体にフィールドを持たせて、そこから参照する方法がある。

Ittoku(いっとく)Ittoku(いっとく)

bevyの衝突判定だが、2dの方にはあるのだが、3dにはないらしい。

仕方がないので自分で実装してみた。

「ないから作った」と言っても単純なもので、プレイヤーと障害物の位置とサイズを取得し、これらの値の範囲に入ったら...みたいなものなので実装は簡単なものだ。

変更内容は以下の通りだが、一見すると簡単なものだが、ここまでに至る経緯には手を焼いた。

https://github.com/ittokun/bevy-games/commit/d3a200dea5c0f2e31389e01bffa9be244ad85a16