2017-12-22 7 views
-1

저는 libgdx에서 새롭고 내 배열에 사각형 ("2")을 추가하는 데 문제가 있습니다. 나는 그것을 추가하고 그것을 얻은 후에 충돌을 감지 할 수 없다. 내 코드가 울부 짖는 소리입니다 : 만들기()에서배열에 사각형을 어떻게 추가 할 수 있습니까?

... 

public class MyGdxGame implements ApplicationListener 
{ 
    Texture texture; 
    SpriteBatch batch; 
    Rectangle one, two; 

    float x1=0,x2; 
    float y1, y2; 

    Array <Rectangle> array; 

:

 texture = new Texture(Gdx.files.internal("android.jpg")); 
     batch = new SpriteBatch(); 

     x2 = Gdx.graphics.getWidth()-40; 
     y1 = y2 = (Gdx.graphics.getHeight()/2)-15; 

     one = new Rectangle(); 
     two = new Rectangle(); 

     one.set(x1, y1, 40, 30); 
     two.set(x2, y2, 40, 30); 

     array = new Array <Rectangle>(); 
     array.add(two); 

렌더러 (에) : 여기

... 
     batch.begin(); 
     batch.draw(texture, x1, y1, 40, 30); 
     batch.draw(texture, x2, y2, 40, 30); 

     try 
     { 
      Thread.sleep(10); 

      x1 += 2; 
      x2 -= 2; 

      one.set(x1, y1, 40, 30); 
      two.set(x2, y2, 40, 30); 

문제입니다, '원인 "한"직사각형 "2"직사각형과의 충돌을 감지하지 않습니다 :

아무도 도와 줄 수 있습니까?

+0

코드를 실행하는 데 예외가 있습니까? 배열에 "하나의"사각형을 추가하지 않고 위치 1의 배열에 액세스하는 것처럼 보입니다. array.get (1) –

+0

답장을 보내 주셔서 감사합니다. 그러나 알레시는 문제를 해결했습니다 ;-) – BeginnerDev

답변

0

배열에 요소를 하나만 추가하려고합니다.

array.add(two); 

은 사용한다이 개체에 활용하려면 다음

List<Rectangle> myList = new ArrayList<>(); 
myList.add(two); 
for(Rectangle rect : myList) { 
    if(one.overlaps(rect)) { 
     //... 
    } 
} 
: array.get(0); 대신 array.get(1); 의 첫째 내가 목록을 사용하는 것이 좋습니다 것입니다, 당신은 아마 그들과 충돌을 확인하는 여러 개의 사각형이 원하는대로
+0

고마워요! 효과가있다. – BeginnerDev

관련 문제