如何检查两个矩形是否在" on"彼此

时间:2015-06-01 09:57:51

标签: android eclipse bitmap

我想检查enemy_green_light(enemy_green_light_xenemy_green_light_y)和玩家(x,y)是否相互碰触。但是,这段代码并没有做我想做的事情,可以说即使他们没有这样做也会遇到。 (x,y)是左角坐标。 谢谢!

boolean before_x=(x<enemy_green_light_x)&&(x+player.getWidth()>enemy_green_light_x);
    boolean after_x=(x>enemy_green_light_x)&&(enemy_green_light_x+enemy_green_light.getWidth()>x);
    boolean before_y=(y<enemy_green_light_y)&&(y+player.getHeight()>enemy_green_light_y);
    boolean after_y=(y>enemy_green_light_y)&&(enemy_green_light_y+enemy_green_light.getHeight()>y);
    if(before_x||after_x)
        if(before_y||after_y)
        {
            pressed=true;
        }

编辑:我也试过这个代码,但它没有用。

float p_y_1,p_y_2,p_x_1,p_x_2,e_y_1,e_y_2,e_x_1,e_x_2;
    p_y_1=y;
    p_y_2=y+player.getHeight();
    p_x_1=x;
    p_x_2=x+player.getWidth();
    e_y_1=enemy_green_light_y;
    e_y_2=enemy_green_light_y+enemy_green_light.getHeight();
    e_x_1=enemy_green_light_x;
    e_x_2=enemy_green_light_x+enemy_green_light.getWidth();
    if(!(p_y_2<e_y_1||p_y_1>e_y_2||p_x_2<e_x_1||p_x_1>e_x_2))
        pressed=true;

1 个答案:

答案 0 :(得分:1)

Here你有一个解释如何确定如果两个矩形重叠

enter image description here

解决方案是这个表达式

! ( P2.y < P3.y || P1.y > P4.y || P2.x < P3.x || P1.x > P4.x )