2 ccmccccc ccmccccc 于 2016.09.10 10:18 提问

求C++碰撞测试的源代码??急用,感谢

最近在做一个有关游戏的课题,需要做碰撞算法,但是从来没接触过,求大神赐点有关的源代码C++语言的,最好用VS写的易懂的。非常感谢!

2个回答

liuhannan111
liuhannan111   2016.09.10 13:11

碰撞检测有很多种算法,比较简单的有AABB,就是判断俩个盒体是否有重叠的部分。
比如有俩个矩形分别是Rect A和Rect B,然后如果有重叠则认为是碰撞在一起了
矩形有四个属性,分别是左下角坐标(positionX,positionY),宽和高(width,height)
判断的时候我们可以采用逆向思维的方式,就是考虑A和B不重叠的判断,然后取反

if !(A.positionX+A.width < B.positionX||B.positionX+B.width < A.positionX||A.positionY+A.height < B.positionY||B.positionY+B.height < A.positionY);

liuhannan111
liuhannan111   2016.09.10 13:19

图片说明
这个就是A和B不发生碰撞的情况,即B的最小X坐标大于A的最大X坐标(A.positionX+A.width < B.positionX)
或者B的最大X坐标小于A的最小X坐标(B.positionX+B.width < A.positionX),
或者B的最小Y坐标大于A的最大Y坐标(A.positionY+A.height < B.positionY),
或者B的最大Y坐标小于A的最小Y坐标(B.positionY+B.height < A.positionY)
出现以上任意一种情况则不会发生碰撞,反之则是发生了碰撞

ccmccccc
ccmccccc 谢谢
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片