我正在与XNA游戏工作室制作游戏,现在我想用Java重写它.这就像2D Minecraft克隆.对于碰撞检测,我必须遍历游戏中的所有块以检查玩家是否与块碰撞.由于有大量的块,所以不可能这样做,因此我制作了一个网格系统.我将世界划分为包含块的网格,并将它们放入字典中.
Dictionary<string, List<Block>> gameBlocks;
Run Code Online (Sandbox Code Playgroud)
现在我只需遍历当前网格中的块.
这是注册块的方法:
public void RegisterBlock(Block block)
{
idX = (int)(block.blockPosition.X / width);
idY = (int)(block.blockPosition.Y / height);
string id = idX.ToString() + "_" + idY.ToString();
if (gameBlocks.ContainsKey(id))
{
gameBlocks[id].Add(block);
}
else
{
gameBlocks.Add(id, new List<Block>());
gameBlocks[id].Add(block);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我试图用Java重写它,但我不知道如何将某些内容放入Dictionary中.