我正在为java迷你游戏编写程序。我需要确定两个物体是否发生碰撞。其中一个对象只是类型为Player(一个单个对象),名称为player
,另一个是对象类型为Enemy的arrayList的一部分,其arrayList的名称为enemies
。我知道我可以使用intersect()
函数,因为它们都扩展了Rectangle。但是,我想知道这个陈述的语法究竟是什么?即 - player.intersect(enemies)
。但是,这似乎不正确?
答案 0 :(得分:3)
由于enemies
是一个列表,因此您无法直接在列表中调用intersect
。你可以做的是循环列表:
static boolean anyEnemyCollides(Player player, List<Enemy> enemies) {
for (Enemy enemy : enemies) {
if (player.intersect(enemy)) {
return true;
}
}
return false;
}
修改强>:
我还要提一下,如果你正在使用番石榴,你可以这样做:
Iterables.any(enemies, (enemy) -> player.intersect(enemy));