所以我想知道如何运行多维数组,而不必使用 for 循环来测试对象是否在矩形中相交,然后渲染有趣的内容?
目前我正在使用两个 for 循环来遍历它,并且在嵌套循环中我必须使用 intersecting()
方法,因为这需要在每一帧发生,所以我的游戏帧率很低。我认为这是因为我的数组中有 650x350 的实体。我将显示下面的代码并重申问题。所以我的正式问题是如何测试实体是否与我的矩形相机相交,以便它不会滞后于游戏?
for (int x = 0; x < entities.length; x++) // entities.length is 650
{
for (int y = 0; y < entities[0].length; y++) // entities[0].length is 350
{
if (camera.intersecting(entities[x][y]))
{
entities[x][y].render(g); // X and Y indices are multiplied by 32 to get the position
}
}
}
最佳答案
这在很大程度上取决于游戏的机制。但从一般意义上来说,我建议研究四叉树( http://en.m.wikipedia.org/wiki/Quadtree )。然后检查相机重叠的节点并绘制它们的内容。
关于Java 渲染仅相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22618120/