2017-09-08 11 views
0

특정 식별자 (예 : 이름)가 있는지 확인하기 위해 특정 스테이지 좌표의 모든 액터를 '검토'하는 방법을 찾고 있습니다.LibGDX - 특정 스테이지의 모든 액터 좌표를 반환합니다.

무대 내 히트 메서드 (아래 코드 참조)는 첫 번째 액터를 찾은 후에 중단됩니다 (여러 액터가 겹치는 경우 문제가됩니다).

@Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
     Vector2 coord = stage.screenToStageCoordinates(new Vector2((float)screenX,(float)screenY)); 
     Actor hitActor = stage.hit(coord.x,coord.y,false); 

     if(hitActor != null) 
     Gdx.app.log("HIT",hitActor.getName()); 

     return true; 
    } 

이는 히트 방법은 첫 번째 배우를 발견 한 후 실행 계속 예를 들어 배열에 결과를 반환 할 수있는 방법 (또는 다른 유사한 방식), 아니면 그냥 모든 배우 통해 반복 더 나을 것 매번 경계가 겹치는 지 확인 하시겠습니까?

답변

0

나는 모든 액터를 루핑하고 그것이 맞았는지 확인하는 것이 유일한 방법입니다. 왜냐하면 stage.hit()은 터치 된 점의 가장 깊은 액터만을 반환하기 때문입니다.

+0

감사합니다. 확인하려면 '두 선수가 맞았는지 확인'한다는 것은 두 배우 사이의 경계가 겹치는 지 확인하는 것입니다. –

+0

두 배우가 충돌했는지 확인하려면 yes를 선택하십시오. 터치 감지를 원할 경우 경계 사각형을 가져 오거나 만들거나 rect.contains (x, y)를 호출합니다. –