佐藤のメモ帳

Rust, Python, Java, AWS, etc...

Rust Bevyゲーム開発記録 その1 画像を表示する

TL;DR

f:id:xianliang2032:20210913230325p:plain

詳細

  • Struct bevy::prelude::Commands
    • コマンドを使用することで、エンティティの出現やコンポーネントの生成削除、リソースの管理ができる。
  • Struct bevy::prelude::AssetServer
    • ファイルシステムからアセットを取得する
    • AssetServer#load()にファイルパスを指定して Handler<Texture>を取得している。
      • このHandlerでアセットを操作することができる。
      • 指定するファイルパスは、デフォルトではsrcフォルダと同階層にあるassetsフォルダからのパスを指定するようだ。
  • Struct bevy::prelude::OrthographicCameraBundle
    • 正射影カメラ
    • 2Dゲームやタクティクスゲームのような視点を表現
  • コマンドに、SpriteBundleを渡すと画像が表示される。
    • SpritBundleとHandlerを紐づける必要がある。
    • 画像は指定がなければ、(0, 0)の位置、つまりど真ん中に表示される。
fn setup_sprite_system(
    mut commands: Commands,
    asset_server: Res<AssetServer>,
    mut materials: ResMut<Assets<ColorMaterial>>,
) {
    let texture_handle = asset_server.load("images/bar128x32.png");
    commands.spawn_bundle(OrthographicCameraBundle::new_2d());
    commands.spawn_bundle(SpriteBundle {
        material: materials.add(texture_handle.into()),
        ..Default::default()
    }).insert(Bar{speed: 10.0});
}

参考