🦀
chip1. RustとBevyで"Hello, world!"
はじめに
2024/09/14時点の内容です。
- rustc 1.81.0
- bevy 0.14.2
bevyは開発初期段階のOSSで、まだまだ破壊的なアップデートが入ります。
でも、面白いですよ。
a. 単純な Hello, world!
これだとさすがにつまらない。
use bevy::prelude::*;
fn main()
{ App::new()
.add_systems( Startup, print_helloworld )
.run();
}
fn print_helloworld()
{ println!( "Hello, world!" );
}
b. 少し”らしい” Hello, world!
もう少しそれっぽく。
use bevy::prelude::*;
//メイン関数
fn main() -> AppExit
{ App::new()
.add_plugins( DefaultPlugins ) //ウインドウやスケジュールの面倒を見てもらう
.add_systems( Startup, spawn_helloworld ) //テキストを表示する
.run()
}
//テキストを表示する
fn spawn_helloworld( mut cmds: Commands )
{ //2Dカメラをspawnする
cmds.spawn( Camera2dBundle::default() );
//2Dテキストをspawnする
let style = TextStyle { font_size: 100.0, ..default() };
let text = Text::from_section( "Hello, world!", style );
cmds.spawn( Text2dBundle { text, ..default() } );
}
Hello, world!
おまけ:ターミナルへのログ出力の制御
ターミナルに出力されるデバッグログを減らしたい場合、LogPlugin
のfilter
をセットします。
"warn,wgpu_hal=error"
と書いたり"error"
と書いたりできます。
use bevy::
{ prelude::*,
log::LogPlugin, //ログ出力の制御
};
//メイン関数
fn main() -> AppExit
{ App::new()
.add_plugins
( //ウインドウやスケジュール等、各種の面倒を見てもらう
DefaultPlugins
.set( LogPlugin { filter: "warn".into(), ..default() } )
)
.add_systems( Startup, spawn_helloworld ) //テキストを表示する
.run()
}
//テキストを表示する
fn spawn_helloworld( mut cmds: Commands )
{ //2Dカメラをspawnする
cmds.spawn( Camera2dBundle::default() );
//2Dテキストをspawnする
let style = TextStyle { font_size: 100.0, ..default() };
let text = Text::from_section( "Hello, world!", style );
cmds.spawn( Text2dBundle { text, ..default() } );
}
Discussion