在 C# 中,我可以做这样的事情
class Map {
public Tile[, ,] Location = new Tile[6, 256, 256];
}
然后使用类似的东西访问任何 Tile 元素Location[2, 40, 20]
我试图在 Rust 中制作类似类型的结构,但我发现语法有点奇怪。我确实想出了这个,但是它出现了大向量大小的段错误(用完了堆栈?):
use tile::Tile // Simple struct with a few Point properties
pub struct Map {
location: [[[Tile, ..256], ..256], ..6],
}
pub impl Map {
fn new() -> Map {
Map {
// assuming empty_tile is a Tile I've just created
location: [[[empty_tile, ..256], ..256], ..6]
}
}
}
我做错了吗?它运行得非常缓慢,并且大尺寸出现了段错误。也许有更好的方法来存储瓷砖的三维空间(层、宽度、高度)?
编辑:这是在我什至尝试使这些 Tiles 可变之前