查询
点查询对于像鼠标拾取和简单的感应器来说非常有用。它允许你检查离给定点一定距离内是否存在着形状,找到形状上离给定点最近的点或者找到离给定点最近的形状。
线段查询
线段查询就像射线投射一样,但由于并非所有的空间索引都允许处理无限长的射线查询所以它仅限于线段。在实践中这仍然非常快速,你不用过多的担心过长的线段查询会影响到性能。
返回线段与形状第一个相交点的绝对距离。
形状查询
形状查询允许你检测空间中的形状是否和一个指定的区域发生了重叠。你可以通过这个来检测物物体是否已经在一个位置存在如果你想在该位置添加另外一个形状的话,又或者在AI中使用它进行感应查询。
关于上面代码:查询space
来找到和shape
重叠的形状。使用层和群组来过滤掉最后得到匹配。
如果你的编译器支持闭包(如Clang), 还有另外一组函数可以调用,如cpSpaceNearestPointQuery_b()
等。详情请参考chipmunk.h
。