检测对象和来自 ArrayList 的对象是否发生碰撞
Detecting If Object and Object From ArrayList Collide
我正在为 java 迷你游戏编写程序。我需要确定两个物体是否发生碰撞。其中一个对象只是 Player 类型(一个对象),名称为 player
,另一个是对象类型 Enemy 的数组列表的一部分,数组列表的名称为 enemies
。我知道我可以使用 intersect()
函数,因为它们都扩展了 Rectangle。但是,我想知道这个语句的语法到底是什么?即 - player.intersect(enemies)
。然而,这似乎并不正确?
因为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));
我正在为 java 迷你游戏编写程序。我需要确定两个物体是否发生碰撞。其中一个对象只是 Player 类型(一个对象),名称为 player
,另一个是对象类型 Enemy 的数组列表的一部分,数组列表的名称为 enemies
。我知道我可以使用 intersect()
函数,因为它们都扩展了 Rectangle。但是,我想知道这个语句的语法到底是什么?即 - player.intersect(enemies)
。然而,这似乎并不正确?
因为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));