public boolean ifCollide(View view1,View view2){ float x = view1.getX(); float y = view1.getY(); int wid1 = view1.getWidth(); int hei1 = view1.getHeight(); float[][] point1 = new float[4][2]; float[][] tp = new float[2][2]; tp[0][0] = view2.getX(); tp[0][1] = view2.getY(); tp[1][0] = view2.getX()+view2.getWidth(); tp[1][1] = view2.getY()+view2.getHeight(); point1[0][0] = x; point1[0][1] = y; point1[1][0] = x+wid1; point1[1][1] = y; point1[2][0] = x+wid1; point1[2][1] = y+hei1; point1[3][0] = x; point1[3][1] = y+hei1; for (int i = 0; i < point1.length; i++) { if(judgeAPotint(point1[i][0],point1[i][1],tp[0][0],tp[0][1],tp[1][0],tp[1][1])){ return true; } } return false; } public boolean judgeAPotint(float x,float y,float tx1,float ty1,float tx2,float ty2){ if(((int)(Math.abs(tx1-x)+Math.abs(tx2-x)) == (int)Math.abs(tx1-tx2)) && ((int)(Math.abs(ty1-y)+Math.abs(ty2-y) )== (int)Math.abs(ty1-ty2))){ return true; } return false; }
View碰撞检测
最新推荐文章于 2021-05-27 05:59:52 发布