#physics-engine #bevy #box #2d #sensors #collision #overlap

bevy_2d_box_physics

用于bevy引擎的2D箱式碰撞物理引擎

2个版本

0.1.1 2023年1月3日
0.1.0 2023年1月2日

#1470 in 游戏开发

MIT许可证

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