1
使用Cocos2d-JS创建一个小突破克隆时,我设法通过否定(或乘以 - 1)X或Y值。检测一个物体与多个物体相撞/否定多个物体的次数
这个工作,至少直到球(它实际上是一个精灵的小矩)一次击中两个方块,此时X或Y值被否定两次。
然后球继续其路径没有弹跳,导致一个非常短暂和非常奇怪的突围比赛。
有没有什么方法可以检测出有多少物品与球碰撞,并且无视其中一个?
或者还有其他方法可以做到这一点吗?
谢谢。
这里是我的代码冲突:
if (Tools.rectsIntersect(this, g_Ball)) {
if (g_Ball.y < this.y || g_Ball.y > this.y) {
g_Ball.yDirection = g_Ball.yDirection * -1;
}
else if (g_Ball.x < this.x || g_Ball.x > this.x) {
g_Ball.xDirection = g_Ball.xDirection * -1;
}
this.destroyBlock();
}
Tools.rectsIntersect = function (obj1, obj2) {box
var aRect = obj1.collideRect();
var bRect = obj2.collideRect();
return cc.rectIntersectsRect(aRect, bRect);
};
我用cocos2D内建的cc.rectIntersectsRect函数。我不完全确定它是如何工作的,但是你有正确的想法将块放入一个数组中。虽然在碰撞事故中我遇到了麻烦,但有时候方向不会颠倒,尽管在我最初的代码中,到目前为止,他们都有了相反的方向。 –