为什么特征没有实现?

Why is the trait not implemented?

我想尝试 amethyst_physics 库来制作游戏。 (呃) 我按照示例进行操作,但不知为何我不起作用:

use amethyst::GameDataBuilder;
use amethyst_physics::{PhysicsBundle};
use amethyst_nphysics::NPhysicsBackend;

fn main() -> amethyst::Result<()> {
    amethyst::start_logger(Default::default());

    let game_data = GameDataBuilder::default()
        .with_bundle(
            PhysicsBundle::<f32, NPhysicsBackend>::new()
        )
    ;
    Ok(())
}

错误:

the trait bound `amethyst_physics::PhysicsBundle<'_, '_, f32, amethyst_nphysics::NPhysicsBackend>: amethyst::amethyst_core::SystemBundle<'_, '_>` is not satisfied
the trait `amethyst::amethyst_core::SystemBundle<'_, '_>` is not implemented for `amethyst_physics::PhysicsBundle<'_, '_, f32, amethyst_nphysics::NPhysicsBackend>`

Here就是例子。

我做错了什么?

这似乎是一个错误。它使用 amethyst 版本 0.15.1 而非 0.15.3 编译成功。在补丁更改期间不会出现这样的回归。

amethyst 使用 amethyst_core 版本 0.15.3(其中定义了 SystemBundle)但 amethyst_physics 使用 amethyst_core 版本 0.10.1.

我已经在紫水晶存储库中提交了 issue


使用此作为解决方法:

amethyst = { version = ">=0.15.0, <0.15.3", features = ["empty"] }