2

我正在学习 Rust 的 Amethyst 框架。现在我在这里学习乒乓教程。第 3 步(移动桨)教程教授如何设置System移动桨。我遵循了所有步骤,但是当我cargo run的应用程序出现错误时:

thread 'main' panicked at 'Cannot insert multiple systems with the same name ("parent_hierarchy_system")', /home/path_to_cargo/shred-0.9.4/src/dispatch/builder.rs:172:17

我试图从教程的 GitHub 存储库中复制,但得到了相同的结果。

我的Cargo.toml样子:

[package]
name = "pong"
version = "0.1.0"
authors = []
edition = "2018"

[dependencies.amethyst]
version = "0.13"
features = ["vulkan"]

我在 Ubuntu 19.10 上运行该项目。锈版本 1.37。

我的猜测是input_system在运行时以某种方式添加了两次。我已经在两个教程存储库中搜索了相同的问题和网络。但似乎我是唯一一个面对它的人。也许解决方案很简单,但我花了周六的时间试图解决它。

let game_data = GameDataBuilder::default()
    .with_bundle(TransformBundle::new())?
    .with_bundle(input_bundle)?
    .with(systems::PaddleSystem, "paddle_system", &["input_system"]) // Add this line
    .with_bundle(
        RenderingBundle::<DefaultBackend>::new()
            .with_plugin(
                RenderToWindow::from_config_path(display_config_path)
                    .with_clear([0.0, 0.0, 0.0, 1.0]),
            )
            // RenderFlat2D plugin is used to render entities with a `SpriteRender` component.
            .with_plugin(RenderFlat2D::default()),
        )?
    .with_bundle(TransformBundle::new())?;

我的GameDataBuilder初始化代码。

4

1 回答 1

2

您已经添加了TransformBundle两次。

删除一个将删除此错误。

于 2020-04-22T22:25:28.527 回答