2014-02-22 45 views
1

我试图让这个基本的应用程序来检测两个精灵的重叠,但没有发生。按照这个教程,但它似乎并没有为我工作。有任何想法吗?用.overlaps方法检测碰撞/重叠

培训相关十岁上下的代码

Rectangle car; 
    Array<Rectangle> carb; 

public void render() { 

     String scorer = String.valueOf(score); 
     camera.update(); 
     batch.setProjectionMatrix(camera.combined); 

     Iterator<Rectangle> iter = carb.iterator(); 
     while (iter.hasNext()) { 
      Rectangle car2 = iter.next(); 
      car2.y -= score + 200 * Gdx.graphics.getDeltaTime(); 
      if (car2.y + 200 < 0) { 
       iter.remove(); 
       score++; 

       if (car.overlaps(car2)) { 
        System.out.println("Works"); 
        iter.remove(); 

       } 
      } 
     } 


private void spawnCar() { 

    Rectangle car2 = new Rectangle(); 


    car = new Rectangle(); 

    lastSpawn = TimeUtils.nanoTime(); 

} 

回答

2

这里:

 if (car2.y + 200 < 0) { 
      iter.remove(); 
      score++; 

      if (car.overlaps(car2)) { 
       System.out.println("Works"); 
       iter.remove(); 

      } 
     } 

你检查,只有当该矩形时,屏幕下方拆下碰撞。像这样做:

 if (car.overlaps(car2)) { 
      System.out.println("Works"); 
      iter.remove(); 
     } 
     if (car2.y + 200 < 0) { 
      iter.remove(); 
      score++; 
     } 
+0

感谢,碰撞的工作,但现在好像纹理关闭,或什么的,可能要做出一个新的职位,不知道是什么导致了它。干杯 – CodingNub