摘要: 在之前说过,像素检测是最精确的一种方式,但是一般为了性能方面的考虑,因为很少用到,但是游戏中很少会有这种纯粹的圆或矩形做检测,这个时候我们就会考虑用多矩形的方式来做检测。 多矩形的原理是:将一个物体A分解成多个矩形组成A组,将另外一个物体B分解成多个矩形组成B组,然后通过A组中的矩形和B组中的矩形是否发生了碰撞就可得知物体A与物体B是否发生了碰撞。/** * * @param rectArray * 物体1的数组 * @param rect2Array * 物体2的数组 * @param rec... 阅读全文
posted @ 2013-04-02 22:47 消逝的落叶 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 圆形检查的思路:两个圆的圆心距小于两个圆的半径之和则相碰撞了,反之,没有发生碰撞 /** * 两个圆的碰撞检测 * @param x1 * @param y1 * @param r1 * @param x2 * @param y2 * @param r2 * @return */ public static boolean CheckCollideCircle(int x1, int y1, int r1, int x2, int y2, int r2) { boolean ... 阅读全文
posted @ 2013-04-02 22:18 消逝的落叶 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 碰撞检测常用的分三类:圆形检测、矩形检测、像素检测。像素检测是最为精确的一种,但是它对性能消耗也是最大的一种,因为一般游戏中很少用到。 矩形检查 思路:可以检查两个矩形的相对位置,如果RectA在RectB的上下左右,且两个矩形没有挨着,则可以判定他们没有碰撞,反之就发生碰撞了。 /** * * @param x1 矩形1的X坐标 * @param y1 矩形1的Y坐标 * @param w1 矩形1的宽 * @param h1 矩形1的高 * @param x2 矩形2的X坐标 * @param y2 矩形2的Y坐标 ... 阅读全文
posted @ 2013-04-02 15:39 消逝的落叶 阅读(1122) 评论(0) 推荐(0) 编辑