应用

每个 Bevy 程序都可以称为一个 App。最简单的 Bevy 应用看起来像这样

use bevy::prelude::*;

fn main() {
    App::new().run();
}

use bevy::prelude::* 语句引入了 Bevy 中的必要元素。为了简洁,本指南在后续步骤中可能省略此语句。

非常简单,对吧?将上面的代码复制到你的 main.rs 文件中,然后运行

cargo run

在你的项目文件夹中。你会注意到... 什么都没有发生。这是因为我们还没有告诉我们的应用做什么!应用只是一个空壳,能够运行我们的应用程序逻辑。如果你想了解更多,请继续阅读。否则,你可以前往下一页学习如何向我们的应用添加逻辑!

什么是应用? #

那么,我们的 App 到底存储了哪些数据?查看上面链接的文档,我们找到了三个字段:worldschedulerunnerworld 字段存储了我们游戏的所有数据,schedule 保存了对这些数据进行操作的系统(以及它们的执行顺序),runner 解释了调度程序以控制全局执行策略。你可以通过探索上面链接的参考文档了解更多信息。

通常情况下,你会在比这些基本原语更细粒度的级别上进行操作:根据特定资源或组件控制数据,并将系统添加到现有调度程序中。为此,使用 构建器模式 通过链接其方法来自定义自己的 App。最基本工具是

  1. World 中初始化资源,以存储全局可用的数据,我们只需要一份副本。
  2. 将系统添加到我们的 Schedule 中,这些系统可以根据我们的游戏逻辑读取和修改资源以及我们实体的组件。
  3. 使用 Plugins 导入其他 App 修改代码块。

我们将在接下来的页面中更详细地介绍这些内容。说到这里,让我们最后使用 Bevy ECS 向我们的应用添加一些逻辑吧!