मैं एक्सएनए गेम स्टूडियो के साथ एक गेम बना रहा था और अब मैं इसे जावा में फिर से लिखना चाहता हूं। यह एक 2 डी Minecraft क्लोन की तरह कुछ है। टकराव का पता लगाने के लिए, मुझे यह देखने के लिए गेम में सभी ब्लॉक के माध्यम से लूप करना होगा कि खिलाड़ी ब्लॉक के साथ टकरा रहा है या नहीं। बड़ी संख्या में ब्लॉक के साथ, ऐसा करना असंभव है, इसलिए मैंने ग्रिड सिस्टम बनाया है। मैंने दुनिया को ग्रिड में विभाजित किया जिसमें ब्लॉक होते हैं, और उन्हें एक शब्दकोश में डाल देते हैं।जावा शब्दकोश <स्ट्रिंग, सूची <Object>>
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);
}
}
अब मैं जावा में यह पुनर्लेखन के लिए कोशिश कर रहा हूँ, लेकिन मैं नहीं जानता कि कैसे एक शब्दकोश में कुछ डाल करने के लिए।