2017-03-30 6 views
-3

java 미니 게임용 프로그램을 작성하는 중입니다. 두 개체가 충돌하는지 확인해야합니다. 객체 중 하나는 player이라는 이름의 Player 유형 (하나의 단일 객체)이고 다른 하나는 enemies 인 arrayList의 이름을 가진 Enemy 객체 유형의 arrayList의 일부입니다. 둘 다 Rectangle을 확장하기 때문에 intersect() 함수를 사용할 수 있다는 것을 알고 있습니다. 그러나이 문장의 구문이 정확히 무엇인지 궁금합니다. 즉 - player.intersect(enemies). 그러나 이것이 올바른 것 같지 않습니까?Object 및 Object가 ArrayList에서 충돌하는 경우 감지

+0

가 어떻게 목록을 통해 루프는 당신이 대신 할 수있다 'ArrayList'는 적절한가? 왜 '적'이 어디에서 온 거지? 플레이어 (아마도)는 플레이어와 교차하는 경우에만주의를 기울일 것입니다. 질문을 편집하여 현재하고 싶은 일과 제대로 작동하지 않는 것 ([mcve])을 보여주십시오. –

답변

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)); 
관련 문제