今回は少し長めのコードですが、ちょっとしたゲームのようなプログラムになっています。
元のコードではbevyの
ECSに関する詳細な解説もついていますが、以下のコードでは各コード行に関する解説に留めています。rand crateを使用しているため、実行毎に異なる結果が得られます(Cargo.tomlの[dependencies]以下にrand = "0.7.3"の追加が必要)。
小さなゲームとは言え、プログラムの基本的な骨格が見えてくるように思いますが、ある程度の規模のものになれば、とても1ファイルでは扱えない量になっていくでしょう。その意味でもbevyエディタの早めの実装に期待したいところです。