XNA game studio で作っていたゲームを 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で書き直そうとしていますが、辞書に何かを入れる方法がわかりません。