检测到碰撞时如何删除Sprite? Libgdx

时间:2015-06-03 14:17:31

标签: java libgdx collision rectangles

每个随机时间(介于1,2和3秒之间)创建一个矩形和一个精灵,每个精灵产生一个矩形。

随机时间调用新的敌人方法:

person_p

同样的事情发生在矩形上:

public void newEnemy(){
        Sprite enemy= Pools.obtain(Sprite.class);
        enemy.set(enemySpr);
        enemy.setPosition(200,150);
        enemies.add(enemy);}

基本上当矩形和精灵产生它们向上移动时,在屏幕的顶部有另一个矩形。我想要在检测到碰撞时去除矩形和精灵。

@ Tenfour04我刚试过你的建议,但我仍然得到错误。

 public void newRect(){
        Rectangle rect=Pools.obtain(Rectangle.class);
        rect.set(enemyRect);
        rectangles.add(rect);
    }

@ Tenfour04这是错误:

while (enemyIterator.hasNext()){
            Sprite nextEnemy=enemyIterator.next(); //I get the error here..
           if(enemySpr.getY()+enemySpr.getHeight()>=treeObj.treeSpr.getY()){
               removeEnemy(nextEnemy);
           }

1 个答案:

答案 0 :(得分:0)

你可以把堆栈跟踪放在我不知道的另一边,也就是removeEnemy(...)以及它是如何工作的,但也许这会有所帮助:

 while (enemyIterator.hasNext()){

     Sprite nextEnemy=enemyIterator.next(); //I get the error here.. -> push stact trace

      if(enemySpr.getY()+enemySpr.getHeight()>=treeObj.treeSpr.getY()){

           enemyIterator.remove();
           //removeEnemy(nextEnemy);
       }
 }