找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4675|回复: 2

碰撞碰撞,矩形

[复制链接]
发表于 2012-9-8 09:51:17 | 显示全部楼层 |阅读模式
/*

RectX;去做碰撞的矩形左上顶点x坐标

RectY;去做碰撞的矩形左上顶点y坐标

RectWidth;去做碰撞的矩形的宽度

RectHeight;去做碰撞的矩形的高度

ObjX;被碰撞的矩形左上顶点的x坐标

ObjY;被碰撞的矩形左上顶点的y坐标

ObjWidth;被碰撞的矩形的宽度

ObjHeight;被碰撞的矩形的高度

*/

public boolean isCollide(int RectX,int RectY,int RectWidth,int RectHeight,int ObjX,int ObjY,int ObjWidth,int ObjHeight){

    if((RectX+RectWidth>ObjX)&&(RectX<ObjX+ObjWidth)&&
        (RectY+RectHeight>ObjY)&&(RectY<ObjY+ObjHeight))

        return true;//true表示两个矩形发生了碰撞

    return false;

}

这个东西,两个矩形必须是两个边平行x轴 两个边平行y轴的,那么任意矩形怎么办?
要是我想做个游戏,两个矩形碰撞,不都是任意的矩形么?用上面那个不好用啊。
发表于 2012-9-8 21:41:45 | 显示全部楼层
和轴平行的叫AABB。( axis-aligned bounding box)
任意方向的叫OBB。(oriented bounding box)

你可以用OBB Collision作为关键字搜一下各种解决方案……
 楼主| 发表于 2012-9-8 23:18:03 | 显示全部楼层
哦 哦 ,谢谢FDR大,好久没见哇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-10-30 20:23 , Processed in 0.009949 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表