2个版本
0.1.1 | 2023年1月3日 |
---|---|
0.1.0 | 2023年1月2日 |
#1470 in 游戏开发
36KB
798 行
bevy_2d_box_physics
用于bevy引擎的2D箱式碰撞物理引擎
使用方法
为了使物理效果生效,必须添加PhysicsPlugin
。对于添加力/速度到物体,可以添加PhysicsBundle
,对于碰撞(仅支持碰撞框,且将一直支持)有CollisionBundle
。传感器也可以通过添加SensorBundle
来获取两个物体重叠时的信息。下面是一个非常简单的示例
use bevy::prelude::*;
use bevy_2d_box_physics::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(PhysicsPlugin)
.add_startup_system(setup)
.run();
}
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn_bundle(PhysicsBundle {
rigidbody: RigidBody::Dynamic,
..default()
})
.insert(CollisionBundle {
collision_box: CollisionBox(16.0, 16.0),
collision_layers: CollisionLayers {
layer_id: 0,
collides_with_ids: vec![0, 1],
},
..default()
})
}
(注意,由于没有纹理,所以这并不做什么,但希望你能理解这个概念)
依赖项
~30–44MB
~732K SLoC