imageview和drawables之间的碰撞检测

时间:2018-01-18 18:13:11

标签: java android android-studio android-drawable imagebutton

我正试图将我的ball1碰撞到greengreen drawable。我怎样才能确定碰撞?

  public boolean CheckCollisionred(View ballr,View rr_1,View rg_3) {
    Rect R1 = new Rect(ballr.getLeft(), ballr.getTop(), ballr.getRight(), ballr.getBottom());
    Rect R2 = new Rect(rr_1.getLeft(), rr_1.getTop(), rr_1.getRight(), rr_1.getBottom());
    Rect R3 = new Rect(rg_3.getLeft(), rg_3.getTop(), rg_3.getRight(), rg_3.getBottom());
    return R1.setIntersect(R2, R3);
 
}

@Override
public void run() {startballanimation();
    if (CheckCollisionred()) {
        Score++;
    }else
        Score--;
}

更新:这显示错误“主活动中的Checkcollisionred()无法应用于预期参数,实际参数”

编辑:问题是我有一个图像按钮,显示我想要碰撞的drawable。

1 个答案:

答案 0 :(得分:1)

您可以选中此选项以查找两个视图的碰撞。 您可以在任何Imageview中添加该drawable。

public boolean CheckCollision(View v1,View v2) {
    Rect R1=new Rect(v1.getLeft(), v1.getTop(), v1.getRight(), v1.getBottom());
    Rect R2=new Rect(v2.getLeft(), v2.getTop(), v2.getRight(), v2.getBottom());
    return R1.intersect(R2);
}

您可以将drawable添加为src

    <ImageView
android:id="@+id/imgLogo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/logo"/>