gpt4 book ai didi

Java 字典>

转载 作者:搜寻专家 更新时间:2023-10-31 19:47:55 24 4
gpt4 key购买 nike

我正在使用 XNA 游戏工作室制作游戏,现在我想用 Java 重写它。它有点像 2D Minecraft 克隆。对于碰撞检测,我必须遍历游戏中的所有方 block 以检查玩家是否与方 block 发生碰撞。大量的 block ,这是不可能的,所以我做了一个网格系统。我将世界划分为包含 block 的网格,并将它们放入字典中。

Dictionary<string, List<Block>> gameBlocks;

现在我只需要遍历当前网格中的 block 。

这是注册区 block 的方法:

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 重写它,但我不知道如何将某些内容放入字典。

最佳答案

使用Java的Map接口(interface)和HashMap类。您的方法在 Java 中看起来像这样:

private Map<String, List<Block>> gameBlocks = new HashMap<String, List<Block>>(); // Java 6
// OR:
private Map<String, List<Block>> gameBlocks = new HashMap<>(); // Java 7

public void registerBlock(Block block) {
idX = (int)(block.blockPosition.X / width);
idY = (int)(block.blockPosition.Y / height);
String id = idX + "_" + idY;
if (gameBlocks.containsKey(id)) {
gameBlocks.get(id).add(block);
} else {
gameBlocks.put(id, new ArrayList<Block>());
gameBlocks.get(id).add(block);
}
}

请注意我对 Java 推荐的格式/命名样式所做的一些更正。

关于Java 字典<String, List<Object>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902733/

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