gpt4 book ai didi

mongodb - 在mongodb中存储多维 map

转载 作者:可可西里 更新时间:2023-11-01 09:27:55 24 4
gpt4 key购买 nike

我正在创建一个游戏并想在 2d map 中存储位置。这些位置以像素为单位,例如:

{ _id: 1111, map: [
{ x: 850, y: 2000 },
{ x: 950, y: 2000 },
{ x: 1050, y: 2000 }
]}

我还想做一些像:

{ _id: 1111, map: [
850: [2000],
950: [2000],
1050: [2000]
]}

像这样的 map 最好的数据结构是什么?在哪里0 < x < 20000 < y < 2000

更多详情:

  • 在获取游戏时,我需要完整的 map ,而不需要只查询 map 的一个子集
  • 我希望 map 尽可能小以便存储。
  • map 中的元素可以超过 3000 个。

最佳答案

如果您只关心保持一张简洁的 map ,我会只存储一个整数数组,其中一个整数代表一个点。您使用按位数学推导 x,y:

例如)65537 =(位)0000000000000001 0000000000000001 = x=z>>16,y=z&0xFFFF = (1,1)

UDPATE:这里是一些请求的示例 JavaScript:

function intToPos(i)
{
var x= i >> 16;
var y= i&0xFFFF;

console.log(x+","+y);
}

var positions=[65537,131074,196611];

for (var i=0; i < positions.length; i++)
{
intToPos(positions[i])
}

更新:posToInt 函数:

function posToInt(x,y)
{
var pos= (x<<16)|y;

console.log(pos);

return pos;
}

关于mongodb - 在mongodb中存储多维 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com