Java 渲染仅相交?

标签 java render slick2d

所以我想知道如何运行多维数组,而不必使用 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/

相关文章:

java - 如何使用 Jsoup 从嵌套表中的特定行中提取文本

3d - Three.js:地面反射。怎么运行的?

perl - 如何将完整的 CGI 表单呈现为 PDF?

java - 当我尝试为乒乓 Racket 制作人工智能时,遇到了一个奇怪的故障

java - Slick2d 以半速播放音频,保持音高不变

java - 自动装箱和拆箱适用于哪些算子?

java - 在索引处添加到 ArrayList 时出现 IndexOutOfBoundsException

JAVA 组合框空格

flutter - 在渲染上更新小部件值?

java - 我应该在 InputListener 对象的方法内实现操作吗?