我不确定如何真正提出这个问题所以我刚刚开了个新帖。我试图看看我是否可以立即检查我的球是否与阵列中的任何矩形相交。
if(ball.getBounds2D().intersects(bricksEasy)) <-- bricks easy is a 2D array of rectangles
现在我正在避免迭代整个数组以避免延迟。我可以用的任何解决方案?欣赏它。
答案 0 :(得分:1)
现在我正避免只是遍历整个数组来避免 延迟。我可以使用任何解决方案吗?
如果在检测到碰撞后立即停止迭代,则不会造成任何延迟。
如果您操作Rectangle2D
实例,则可以使用此重载实例方法:
public boolean intersects(Rectangle2D r)
要在匹配完成后立即退出迭代,您可以使用anyMatch()
谓词:
Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(brick -> brick.intersects(ball2D));
您也可以使用带有ball2D
变量的方法参考作为目标:
Rectangle2D ball2D = ...;
Rectangle2D[] bricksEasy = ...;
boolean isAnyIntersection = Arrays.stream(bricksEasy).anyMatch(ball2D::intersects);