Rust + Bevyでゲーム作成
2021-12-22


何か必要に迫られてというわけではないけれど、
 Rustあたりは触っておいた方が良いかなと、
 ゲームエンジンBevyを使用してミニゲームを作ってみました。

くるくるアクションパズル くるんくる〜ぱ

ブラウザ等、環境によっては動かないかもしれません。

開発プロジェクト(GitHub


Bevyの基本的な使い方は紹介ページもありますし日本語でもいろいろな所で解説されていますが、実際にゲームを作るとなるとそれ以外にも必要な事が出てきたり様々な問題にぶつかったりもします。
今回の経験から、そういった点をいくつか挙げてみます。


スプライトを半透明にする

 アルファ値(を含めたカラー)を設定するには、ColorMaterialのcolor:Colorを変更する。
 同じ大きさのスプライトを複数まとめたSpriteSheetBundleを使った場合にはTextureAtlasSpriteを持ってきて、そのメンバのcolorを変更すれば良い。
 ただし SpriteBundleでは materialがHandle<ColorMaterial>なので、ResMut<Assets<ColorMaterial>も持ってきてそこからget_mutでColorMaterialを取り出す必要がある。
 SpriteBundleSpriteSheetBundleも似たようなものだと思うのだが、何でやり方が異なるのだろうか?

ちなみにSpriteBundleでもスプライト作成時に設定するのなら、ResMut<Assets<ColorMaterial>>にaddする前に変更してしまえば良い。


スプライトの加算合成

 加算合成を含めた描画モードの変更の仕方だが、結局わからなかった。
 このゲームでは省いても何とかなったけど、エフェクトなど他のゲームではよく使われる手法なのでやり方がわからないと困りそう。

テキスト描画

 テキストの描画はText2dBundleでエンティティを生成

は良いとして、
transformのscaleを変更しても、拡大率が変わらなかった。
何か使い方を間違えているのか、そういうものなのか……


場面の切替え

 タイトル画面からゲームへなど場面を設定して移行する機能で、他のエンジンでは"シーン"などと呼ばれることもあるが、Bevyでは"State"となっている。
 

続きを読む

[ゲーム]
[ブラウザゲーム プログラミング]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット