android Rect.intersect始终为false

时间:2014-05-21 05:30:52

标签: java android

士兵等级

    centerX += speedX;
     r.set(centerX , centerY, 50, 50);

Bullet Class

   centerX += speedX;
    r.set(centerX, centerY, 50, 50);
    if(Rect.intersects(r,GameScreen.soldier.r))
    {
        System.out.println("collision");

    }

我遇到了碰撞检测问题。我尝试过Rect.intersects,r.intersect(r1),r.contains(r1)并且总是假的。我甚至绘制矩形以确保它们被正确绘制并且它们是,但碰撞总是错误的

1 个答案:

答案 0 :(得分:1)

/**
 * Check if two rectangles collide
 * x_1, y_1, width_1, and height_1 define the boundaries of the first rectangle
 * x_2, y_2, width_2, and height_2 define the boundaries of the second rectangle
 */
boolean rectangle_collision(float x_1, float y_1, float width_1, float height_1, float x_2, float y_2, float width_2, float height_2)
{
  return !(x_1 > x_2+width_2 || x_1+width_1 < x_2 || y_1 > y_2+height_2 || y_1+height_1 < y_2);
}