我使用XNA游戏工作室开发游戏,现在我想用Java来重写它。它类似于2D版的Minecraft。为了进行碰撞检测,我需要循环遍历游戏中的所有方块,以检查玩家是否与方块发生碰撞。如果有大量方块,这是不可能的,所以我建立了一个网格系统。我将世界分成包含方块的网格,并将它们放入字典中。
现在,我只需要循环遍历当前网格中的块。
这是注册块的方法:
Dictionary<string, List<Block>> gameBlocks;
现在,我只需要循环遍历当前网格中的块。
这是注册块的方法:
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);
}
}
现在我正在尝试用Java重写它,但我不知道如何将某些东西放入字典中。