昨天刚发了个帖子,吐槽了一下chipmunk-js缺少一些API
今天研究了下他的源码,发现这个JS版本简直就是一个巨坑!
为什么说是巨坑?
C版的BB包围盒本来有很多运算方法,如下:
操作运算
cpBool cpBBIntersects(const cpBB a, const cpBB b) – 如果边界框相交返回true
cpBool cpBBContainsBB(const cpBB bb, const cpBB other) – 如果 bb 完全包含other 返回true
cpBool cpBBContainsVect(const cpBB bb, const cpVect v) – 如果 bb 包含 v 返回true
cpBB cpBBMerge(const cpBB a, const cpBB b) – 返回包含 a 和 b 的最小的边界框
cpBB cpBBExpand(const cpBB bb, const cpVect v) – 返回包含 bb 和 v 的最小的边界框
cpVect cpBBCenter(const cpBB bb) – 返回 bb 的中心点矢量
cpFloat cpBBArea(cpBB bb) – 返回 bb 矢量表示的边界框的面积
cpFloat cpBBMergedArea(cpBB a, cpBB b) – 合并 a 和 b 然后返回合并后的矢量的边界框的面积
cpFloat cpBBSegmentQuery(cpBB bb, cpVect a, cpVect b) – 返回分段查询相交bb 的相交点个数,如果没有相交,返回 INFINITY
cpBool cpBBIntersectsSegment(cpBB bb, cpVect a, cpVect b) – 如果由 a 和 b两端点定义的线段和 bb 相交返回true
cpVect cpBBClampVect(const cpBB bb, const cpVect v) – 返回 v 在边界框中被截断的矢量的副本
cpVect cpBBWrapVect(const cpBB bb, const cpVect v) – 返回 v 包含边界框的矢量的副本
可是到了JS版,相关的命名,如:cp.BB.bbIntersects、cp.bb.bbIntersects、cp.BB.intersects、cp.bb.intersects 我都试了,全部是未定义。
于是我打开他的源代码,结果发现,他倒是把一部分运算方法定义出来了,但全部没有暴漏出来
这特么的是闹哪样啊???让不让人用啊?
