【发布时间】:2021-07-16 10:19:50
【问题描述】:
我正在使用 Rust 和 BevyEngine 构建一个元胞自动机可视化“游戏”。目前,在初始化世界时,我为每个单元生成一个精灵。在每次更新中,精灵的颜色都会根据它是活着还是死亡而改变。
for (grid_pos, mut color_mat) in query.iter_mut() {
let cell_state = world.0[grid_pos.1][grid_pos.0];
match cell_state {
0 => *color_mat = materials.dead_cell.clone(),
1 => *color_mat = materials.alive_cell.clone(),
_ => (),
}
}
问题是,当处理越来越大的地图时,精灵的数量会变得非常多。所以我想知道当我只在活细胞的位置生成一个精灵并在细胞死亡时将其移除时是否会更快。
所以我的问题是:如果我为每个网格位置生成所有精灵会更快,还是只在细胞存活时生成精灵并在细胞死亡时将其移除是更好的方法。
【问题讨论】:
-
这是一个很难从远处回答的问题,而真正明确回答的唯一方法是对两个版本进行基准测试。