4.游戏中的碰撞检测
(1)弹球游戏中的边界碰撞检测。
这个原理大家应该很容易就想到了,用游戏元素的坐标值与整场景的大小来比较就可以判断出元素是否碰到边界了,为了丰富游戏框架,我制作了一个游戏边界碰撞检测器类。大家可以参考类:BorderCrossing,代码我就不贴到这里了。
(2)游戏中的元素相互之间的碰撞检测。
这里的碰撞包括但不限于以下几种:矩形之间的碰撞,圆形之间的碰撞,象素间的碰撞等,目前我们只需要矩形之间的碰撞检测即可,矩形和圆之间的碰撞检测的原理有些相同。
一般我们只是检测物体之间是否有碰撞,这种方法需要判断的地方比较多,如果我们只判断物体之间没有碰撞,相对来说就简单些了,你可以想象一下两个方形没有碰撞的时候有几种情况?具体代码这里我就不贴出来了,可以查看代码仓库中的:SpriteCrossing,这是一个碰撞检测器,包括了:两种矩形碰撞一种圆形碰撞检测方法,但这二种方法在元素超多的情况下可能会产生混乱,后继会优化排察原因。
弹球游戏中的pinballGameLogic()方法为游戏中的逻辑判断方法,这个方法中使用了边界与物体碰撞检测类,亲们可以研究一下。
具体可以查看游戏框架源码,我已上传git.osc
传送门: