JS版本的巨坑【chipmunk】!

昨天刚发了个帖子,吐槽了一下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 我都试了,全部是未定义。

于是我打开他的源代码,结果发现,他倒是把一部分运算方法定义出来了,但全部没有暴漏出来:9:

这特么的是闹哪样啊???让不让人用啊?

chipmunk-js 本来就是chipmunk 自己提供的。。。。。。。:12:

楼主,你还是先提高一下自己的姿势水平再来喷吧。那几个函数在chipmunk里都是static的,知道c语言里的static函数是啥意思吗?

反正我就觉得chipmunk的代码提示非常的不好,基本很多方法都没有提示。没有文档,我都在自己看代码慢慢查…………
但是有很多人都在催文档,我就没说什么。毕竟cocos是开源的,别人没有义务非要为我们提供什么。

我怎么不知道什么是静态方法?

你可以看看cp.v是怎么定义的

我怀疑你有没有用过这些方法?那你告诉我该怎么调用?没用过就别说我喷

啧啧,你确实不知道

呵呵,我看你也说不出个所以然。过嘴瘾的话就别在这BB

飘过,表示啥也不想说

哦,我又看了一下,是static inline,那估计是chipmunk-js的作者理解错了

chipmunk-js文件在哪里找,我完全找不到他的js API

23333,好像只能自己试试咯