Android Libgdx,Intersector.overlaps在失焦时未检查

Android Libgdx,Intersector.overlaps在失焦时未检查,android,libgdx,collision-detection,Android,Libgdx,Collision Detection,我正在开发一款方块游戏。我有两个垂直方向的移动块。其中一个区块也在水平移动,就像公路战斗机中的自动移动汽车。我正在通过Intersector.overlaps检查块交互,但当我的块超出窗口(即位置小于0)时,我的重叠代码不起作用 if(Intersector.overlaps(block1.getBoundingRectangle(), block2.getBoundingRectangle())){ // do not update values }else{ //

我正在开发一款方块游戏。我有两个垂直方向的移动块。其中一个区块也在水平移动,就像公路战斗机中的自动移动汽车。我正在通过Intersector.overlaps检查块交互,但当我的块超出窗口(即位置小于0)时,我的重叠代码不起作用

if(Intersector.overlaps(block1.getBoundingRectangle(), block2.getBoundingRectangle())){ 
      // do not update values
}else{
      // update the values of block1 and block 2
}


    public static int[] value={138,195,248,303};    
public static boolean[] valueHolder={true,false,false,true};

public void update(float delta) {       
    velocity.set(0, backgroun.velocity.y-scrollSpeed);
    position.add(velocity.cpy().scl(delta));

    if(position.y>850){
        isScrollableTop=true;
    }


    selfMove(delta);
            if(position.y<-150){
                position.y=-150;            
            }

    carBoundingRectangle.setX(position.x);
    carBoundingRectangle.setY(position.y);

}

private void changeArray() {

    if(position.x>=138 && position.x<167){
        if(!GameConstants.valueHolder[0]){
            GameConstants.valueHolder[blockNumber]=false;
            GameConstants.valueHolder[0]=true;
            blockNumber=0;
        }
    }else if(position.x>=167 && position.x<222 ){

        if(!GameConstants.valueHolder[1]){
            GameConstants.valueHolder[blockNumber]=false;
            GameConstants.valueHolder[1]=true;
            blockNumber=1;
        }
    }else if(position.x>=222 && position.x<275){

        if(!GameConstants.valueHolder[2]){
            GameConstants.valueHolder[blockNumber]=false;
            GameConstants.valueHolder[2]=true;
            blockNumber=2;
        }
    }else if(position.x>=275 ){
        if(!GameConstants.valueHolder[3]){
            GameConstants.valueHolder[blockNumber]=false;
            GameConstants.valueHolder[3]=true;
            blockNumber=3;
        }
    }       
}

提前感谢

我们需要一些代码来告诉您问题所在。如果给它的边界重叠,它只会检查交线。因此,如果块不在您的视口中,您给它的边界是错误的。当块在屏幕上可见时,此代码起作用,但当块位置小于0时,即使重叠,我的代码也不起作用。请再给一些代码。给出Block类的代码。我的问题是,当块离开视图后重新生成时,会导致块重叠。原因是当我试图检查Intersector.overlaps时,当我的块不在视图中时,则我的Intersector.overlaps代码不起作用。对于selfMove,我只是更新x值