点和矩形碰撞
-
-
-
-
-
-
-
-
-
-
-
public static boolean isCollsion(int x1, int y1, int x2, int y2, int w, int h) {
-
if (x1 >= x2 && x1 <= x2 + w && y1 >= y2 && y1 <= y2 + h) {
-
return true;
-
}
-
return false;
-
}
矩形碰撞
-
-
-
-
-
public boolean isCollsionWithRect(int x1, int y1, int w1, int h1,
-
int x2,int y2, int w2, int h2) {
-
if (x1 >= x2 && x1 >= x2 + w2) {
-
return false;
-
} else if (x1 <= x2 && x1 + w1 <= x2) {
-
return false;
-
} else if (y1 >= y2 && y1 >= y2 + h2) {
-
return false;
-
} else if (y1 <= y2 && y1 + h1 <= y2) {
-
return false;
-
}
-
return true;
-
}
点(x1,x2) , 圆心(x2,y2) ,半径r
-
if (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) <= r) {
-
-
return true;
-
}
圆和圆
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
private boolean isCollisionWithCircle(int x1, int y1, int x2, int y2,
-
int r1, int r2) {
-
-
-
-
if (Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)) <= r1 + r2) {
-
-
return true;
-
}
-
return false;
-
}
碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
原文:http://blog.csdn.net/shineflowers/article/details/41084329