我正在学习 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
初始化代码。