2 个不稳定版本
0.1.0 | 2021 年 3 月 21 日 |
---|---|
0.0.1 | 2021 年 2 月 4 日 |
#2051 in 游戏开发
28KB
554 行
Shipyard Rapier
用于 shipyard ECS 的 rapier 物理插件。
基于 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
~287K SLoC