Latest commit 85dac0c
App Builder (main function)
相关的官方文档:[ecs_guide],[hello_world],[empty],[empty_defaults],[headless]
配置好 [App] 后才能进入 Bevy 的运行时。这个 App 可以由[插件]、[系统]、[事件]、[状态]和[阶段]组成。
App 包含了 “ECS 世界”(World,保存了所有数据,也就是组件)和调度(Schedule,保存了所有的系统)。[Sub-apps] 是高级用法,用来生成多个 “ECS 世界”和“调度”。
[本地资源] 无需注册,它们是所属系统的一部分。[组件]类型无需注册。
调度(目前)不能再运行时修改;所有系统都必须在 App 中注册,否则无法使用。
ECS 世界的数据可以在任何时候修改;在系统中,可以用 Commands 来创建/销毁实体或资源,可以用 todo 来 todo。
可以在 App 中提前初始化资源。
还要添加Bevy的内置功能:如果要做一个完整的游戏(或应用程序),用 DefaultPlugins;如果是无头服务器之类的,用 MinimalPlugins。
注意,todo。
fn main() { App::new() // 配置类的资源要优先添加,甚至要比 Bevy 本身早 .insert_resource(WindowDescriptor { // ... ..default() }) // Bevy 本身 .add_plugins(DefaultPlugins) // 资源 .insert_resource(StartingLevel(3)) // 可以为资源实现 `Default` 或 `FromWorld`,表示这些资源能够在创建时初始化 .init_resource::<MyFancyResource>() // 事件 .add_event::<LevelUpEvent>() // 这个系统在 App 启动时只运行一次 .add_startup_system(spawn_player) // 这个系统在 App 启动后每帧运行 .add_system(player_level_up) .add_system(debug_levelups) .add_system(debug_stats_change) // ... // 启动应用程序 .run(); }