有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

优化(java.awt.geom.Area-based)与更多对象的冲突

我正在编写一个多人游戏,它使用区域重叠来检测子弹和每个玩家之间的碰撞。碰撞检测段的大致代码:

Iterator<FullPlayerMP> it = client.players.iterator();  
while(it.hasNext()) {
    FullPlayerMP fmp = it.next();

  Area realCollisionArea=fmp.pWeapon.collisionArea.createTransformedArea(AffineTransform.getTranslateInstance(fmp.x, fmp.y));

  realCollisionArea.intersect(collisionArea.createTransformedArea(AffineTransform.getTranslateInstance(x, y)));

   if(!realCollisionArea.isEmpty()) {
        System.out.println("true");
    }

}

(在射弹类中,x和y是子弹的坐标。FullPlayerMP是我想要检测碰撞的玩家)

这段代码很好用,一颗子弹(和一个其他玩家)没有延迟,但是当有多颗子弹(即使只有10-20颗)时,游戏开始减速,延迟非常严重。所以我的问题是,有没有办法优化这段代码,使其不会因为大量的子弹而减慢程序的速度,或者甚至采用不同的碰撞检测方法(最好是基于图像/像素而不是边界)

提前谢谢


共 (0) 个答案