2013-03-19 2 views
0

I가 2 개 스프라이트는 x 축에 중복 때 말해한다 다음과 같은 기능 : 문제는 무엇사각형이 교차하지 않는 이유는 무엇입니까?

03-19 15:08:12.617: D/Compare Rect(631): [183, 231] [141, 189] <-- should be true 
03-19 15:08:22.186: D/Compare Rect(631): [158, 206] [172, 220] <-- should be true 
03-19 15:08:26.346: D/Compare Rect(631): [123, 171] [178, 226] 
03-19 15:08:30.146: D/Compare Rect(631): [156, 204] [155, 203] <-- should be supertrue 
03-19 15:08:32.617: D/Compare Rect(631): [84, 132] [172, 220] 

:

public int getSecondObjectX(int secObjWidth) 
    { 
     int rndX = random.nextInt(AndroidApplication.getInstance().device_width - secObjWidth); 

     Rect sObj = new Rect(rndX, 20, rndX + secObjWidth, 10); 
     Rect droid = new Rect(myAnimation.getXcord(), 20, myAnimation.getXcord() + myAnimation.getCurrentImage().getWidth(), 10); 

     Log.d("Compare Rect", "["+sObj.left+", "+sObj.right+"] ["+droid.left+", "+droid.right+"]"); 

     if(Rect.intersects(sObj, droid)) 
     { 
      Log.d("INTERSECT", "INTERSECT"); 

      return getSecondObjectX(secObjWidth); 
     } 
     else 
      return rndX; 
    } 

하지만 결코 교차을 얻을, 여기에 로그 캣입니다 ?

+0

매뉴얼을 읽으십시오. 틀린 번호를 입력하십시오. – njzk2

답변

3

Rect을 구성하는 방법이 잘못되었습니다. public Rect (int left, int top, int right, int bottom) 생성자는 범위 검사를 수행하지 않습니다. 어떤 범위 검사가 수행되지 않습니다 때문에, 호출자는 < = 오른쪽 상단 < = 바닥을 떠난 것을 확인해야합니다

참고 : 당신은 문서에 다음과 같은 찾을 수 있습니다.

위의 경우> 맨 아래

+0

Ahhh, thanks! 혼합 된 상단 및 하단; –

관련 문제