#physics #ecs #joints #rigid #dynamics #physics-engine

shipyard_rapier2d

为shipard ECS集成的rapier物理引擎

2个不稳定版本

0.1.0 2021年3月21日
0.0.1 2021年2月4日

#2157 in 游戏开发

MIT许可证

28KB
554

Shipyard Rapier

shipyard ECS的rapier物理插件。

基于bevy_rapier插件。

使用方法

在shipyard世界中设置物理

let world = World::new();
world.run(setup_physics).unwrap();

创建一个身体和碰撞组件,将这些添加到现有的实体中,或创建一个新的实体

let body = RigidBodyBuilder::new_dynamic().translation(x, y);
let collider = ColliderBuilder::cuboid(rad, rad).density(1.0);
all_storages.add_entity((body, collider));

在您的游戏循环中,执行物理系统来模拟世界

// Create rapier colliders, bodies and joints based on the shipyard components.
world.run(create_body_and_collider_system).unwrap();
world.run(create_joints_system).unwrap();

// Step the world based on a frame rate.
let frame_time = 60.0 / 1000.0; // 60 fps simulation
world.run_with_data(step_world_system, frame_time).unwrap();

// Remove any physics components from deleted entities.
world.run(destroy_body_and_collider_system).unwrap();

依赖项

~10–15MB
~286K SLoC