#bevy #entities #gamedev #query #collision #traits #convenience

bevy_two_entities

为使用Bevy查询提供一些便利特质的几个特质

2个不稳定版本

0.2.0 2024年7月4日
0.1.0 2024年5月16日

#1232游戏开发

Download history 84/week @ 2024-05-10 80/week @ 2024-05-17 6/week @ 2024-05-24 3/week @ 2024-05-31 4/week @ 2024-06-07 2/week @ 2024-06-14 68/week @ 2024-06-28 63/week @ 2024-07-05 2/week @ 2024-07-12

121 每月下载次数

MIT/Apache

19KB
397

bevy_two_entities

一个提供Bevy的Query和Query(&Query, &Query)的便利特质的微型crate,用于涉及恰好两个实体的情况。

示例

fn game_over(
    collisions: Query<&Collision>,
    players: Query<(), With<Player>>,
    enemies: Query<(), With<Enemy>>,
    mut next_state: ResMut<NextState<GameState>>,
) {
    for collision in &collisions {
        if (&players, &enemies).both(collision.0, collision.1) {
            next_state.set(GameState::GameOver);
        }
    }
}
fn damage_enemy(
    collisions: Query<&Collision>,
    players: Query<(), With<Player>>,
    mut enemies: Query<&mut HitPoints, With<Enemy>>,
) {
    for collision in &collisions {
        let mut queries = (&players, &mut enemies);
        let Some((_, mut enemy_hp)) = queries.get_both_mut(collision.0, collision.1) else {
            continue;
        };

        enemy_hp.0 -= 1;
    }
}

兼容性

bevy_two_entities bevy
0.2 0.14
0.1 0.13

依赖关系

~23MB
~425K SLoC